字典的认识和使用 day05

  1. 字典初识(dict)

    • {}括起来,以键值对形式存储的容器型数据类型

      python3.6+字典就是有序的了,之前的字典都是无序。

    • 数据类型的分类(可变与不可变):

      • 可变(不可哈希)的数据类型:list dict set
      • 不可变(可哈希)的数据类型:int str bool tuple
    • 键必须是不可变的数据类型:int,str(bool tuple几乎不用)唯一的

    • 值可以是任意数据类型,对象。

    • 字典的优点:查询速度非常快,存储关联性的数据。

    • 字典的缺点:以空间换时间。

    1. 字典的创建方式:
    面试会考:
    方式一:
    dic = dic((('one,1'),('two,2'),('three,3')))
    print(dic)#{'one':1,'two':2,'three':3}
    方式二:
    dic = dict(one=1,two=2,three=3)
    方式三;
    dic = dict({'one':1,'two':2,'three':3})
    
    1. 验证字典的合法性:

      键要是不可变的数据类型:int str tuple bool
      set list dict 不能作为键
      键要是唯一的
      
  2. 字典的增删改查

    #增
    直接增加,有则改之,无则增加
    setdefault 有则不变,无则增加
    
    dic= {'name':'holting','age':13,'hobby':['好人','yangsheng']}
    #直接增加,有则改之,无则增加
    # dic['sex'] = 'nan'
    # dic['age'] = 23
    # print(dic)
    #setdefault 有则不变,无则增加
    #dic.setdefault('hobby')
    # dic.setdefault('qq','qiulei')
    # dic.setdefault('age', 45)
    # print(dic)
    
    #删
    #pop 按照键删除键值对,有返回值
    #设置第二个参数,则无论字典中有无该参数都不会报错
    # re = dic.pop('age')
    # ret = dic.pop('hobby','没有此键')
    # print(dic)
    # print(re)
    # print(ret)
    #clear 清空
    # dic.clear()
    # print(dic)
    #del 按键删,值
    # del dic['name']
    # del dic['age']
    # print(dic)
    
    #改
    # dic['name'] = '太白'
    # print(dic)
    
    #查
    #print(dic['hobby'])
    #print(dic['hobby1'])
    
    #get
    #l1 = dic.get('hobby')
    # l1 = dic.get('hobby7','没有此键sb')  # 如果键不存在返回默认值None,可以设置返回值
    # print(l1)
    
    

    四个特殊的:keys values items update

    #key()所有的键 
    values()所有的值
    items()所有的键值对
    # update 更新字典键值对  没有的键直接添加;有的键则更新值
    
    # info = {"age":12, "status":True, "name":"wupeiqi","email":"[email protected]"}
    # data = info.keys()#获取字典的所有键,返回一个“高仿”的列表
    # print(data)#像for循环中,利用此来输出键值
    # info = {"age":12, "status":True, "name":"wupeiqi","email":"[email protected]"}
    # data = info.values()
    # print(data)
    # for val in info.values():
    #     print(val,type(val))
    # info = {"age":12, "status":True}
    # info.update({'age':2,'hao':4})
    # print(info)
    
  3. 字典的嵌套

    dic = {
        'name': '汪峰',
        'age': 48,
        'wife': [{'name': '国际章', 'age': 38},],
        'children': {'girl_first': '小苹果','girl_second': '小怡','girl_three': '顶顶'}
    }
    # 1. 获取汪峰的名字。
    #
    # 2.获取这个字典:{'name':'国际章','age':38}。
    #
    # 3. 获取汪峰妻子的名字。
    
    # 4. 获取汪峰的第三个孩子名字。
    # print(dic['name'])
    # # print(dic['wife'],type(dic['wife']))
    # # del dic['wife']
    # # dic.pop('children')
    #print(dic)
    ls = dic['wife']
    print(ls[0]['name'])#逐步通过索引获取
    
    
  4. 总结

    字典查询速度快,数据的关联性强。

    • 键不可变的数据类型,(str int tuple bool)
    • 值:任意数据类型,对象
    • 增删改查
    • 字典的嵌套

猜你喜欢

转载自www.cnblogs.com/zhaoxinblog/p/13190089.html
今日推荐