zoukankan      html  css  js  c++  java
  • 字典及相关操作

    字典

    字典的意义:

    列表的缺点

    列表如果存储的数据较多,那么它的查询速度会相对变慢

    列表储存的数据关联性不强

    什么是字典:

    python的基本数据类型之一:字典

    python中唯一的映射类的数据,格式为用花括号 { } 括起来

    字典是以键值对形式储存,每一对键值对以逗号隔开

    {'name':'太白金星','age':'18','sex':'man'}

    字典是以键值对形式储存的

    键:不重复的,唯一的。键的数据类型必须是不可变的数据类型

    值:任意储存类型,对象

    字典可以储存大量键值对数据

    python3.6之前,包括3.5,字典的排序都是无序的

    python3.6之后,字典强行变成有序的

    字典的优点

    字典可以储存大量的关系型数据

    字典的查询速度非常快

    字典的增删改查

    dic = {'name','太白金星','age','18','hobby','wife'}

    增:

    1.有则修改,无则添加

    dic['hight'] = 176       添加一个键值对

    dic['age'] = 23           把字典中的age对应的值修改为23

    2.有则不变,无则添加

    dic.setdefault('weight')                dic = {'name','太白金星','age','18','hobby','wife','weight':None}

    dic.setdefault('weight',160)         dic = {'name','太白金星','age','18','hobby','wife','weight':160}

    pop       

    按照键删除

    ret = dic.pop('age')                按照键删除掉键值对

    ret = dic.pop('age1')              没有对应的键不会报错   有返回语  不经过设置一般是None

    可以设置提示语

    ret = dic.pop('age1','没有此键')

    clear

    清空

    dic.clear()

    print(dic)

    popitem

    python3.6版本之后命令为删除最后一个j键值对,3.6版本之前命令为随即删除一个键值对

    ret = dic.popitem()

    print(ret)

    print(dic)

    del

    用法跟在列表时相似

    del dic['name']   按照键删除键值对

    del dic['name2']  没有相应键值会报错

    del dic        删除整个字典

    改:

    dic['age'] = 30     同增的办法,无则添加,有则修改

    update

    dic.update(car = '逍客',money = 13000)

    可以批量添加键值对到字典里

    还可以将一个字典覆盖到另一个字典里

    dic = {"name": "jin", "age": 18, "sex": "male"}

    dic2 = {"name": "alex", "weight": 75}

    dic2.update(dic)

    将dic里面的键值对覆盖添加到dic2中

    print(dic) {'name': 'jin', 'age': 18, 'sex': 'male'}

    print(dic2) {'name': 'jin', 'weight': 75, 'age': 18, 'sex': 'male'}

    查:

    1.相对不好的方式

    print(dic['age'])

    print(dic['age1'])  如果没有此键会报错

    2.get

    print(dic.get('age'))

    没有此键默认返回None

    print(dic.get('age1'))

    可以设置返回值

    print(dic.get('age1', '没有此键'))

    字典的for循环

    dic = {'name','太白金星','age','18','hobby','wife'}

    for i in dic:

    print(i)

     

    dic.keys()   打印出所有的键

    dic.values()    打印出所有的值

    dic.items()   打印出所有的键和值

    可以用for循环打印出所偶的键 所有的值 所有的键和值

    都可以转化为list

    ret = dic.keys()

    print(list(ret))

     

    a = 18

    b = 32

    a, b = b, a

    print(a,b)

     

    print(dic.items())

    for k,v in dic.items():     利用分别赋值

        print('这是键:', k)

        print('这是值:', v)

     

    字典的嵌套

    dic = {
    'name_list': ['博哥', '菊哥', 'b哥', 'alex'],
    'barry': {
    'name': '太白金星',
    'age': 18,
    'hobby': 'wife',
    }
    }

    1,给这个列表['博哥', '菊哥', 'b哥', 'alex'] 追加一个元素 '老男孩'
    l1 = dic['name_list']
    # print(l1)
    l1.append('老男孩')
    print(dic)

    简写;
    dic['name_list'].append('老男孩')
    print(dic)
    2,将这个列表['博哥', '菊哥', 'b哥', 'alex']中的alex变成首字母大写。
    print(dic['name_list'][-1].capitalize())
    dic['name_list'][-1] = dic['name_list'][-1].capitalize()
    print(dic)
    3,将这个键值对 'name': '太白金星' 的 '太白金星' 改成男神。
    先通过dic 找到小字典
    print(dic['barry'])
    在通过小字典将name 对应的值更改
    dic['barry']['name'] = '男神'
    print(dic)
    4,给barry对应的小字典增加一个键值对: weight: 160
    dic['barry']['weight'] = 150
    print(dic)

    另加
    按数据类型的的划分
    容器型与非容器型划分:
    容器型数据类型: list tuple dict set
    非容器型数据类型: int str bool
    按可变与不可变划分:
    可变(不可哈希)的数据类型 : list dict set
    不可变(可哈希)的数据类型: int str bool tuple

  • 相关阅读:
    用.net开发wap
    MVC3 中使用 Ajax.ActionLink Ajax.BeginForm
    收藏一下这个微软MVP的老外博客
    第三篇:Django的路由系统
    第二篇:Django自定义登录功能
    第一篇:Django简介
    json和pickle序列化模块
    oracle 11gr2 rac修改VIP
    修改监听端口号
    删除磁盘组
  • 原文地址:https://www.cnblogs.com/biulo/p/10486305.html
Copyright © 2011-2022 走看看