zoukankan      html  css  js  c++  java
  • 字典的认识和使用 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":"xx@live.com"}
      # data = info.keys()#获取字典的所有键,返回一个“高仿”的列表
      # print(data)#像for循环中,利用此来输出键值
      # info = {"age":12, "status":True, "name":"wupeiqi","email":"xx@live.com"}
      # 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)
      • 值:任意数据类型,对象
      • 增删改查
      • 字典的嵌套
  • 相关阅读:
    String和inputstream互转【转文】
    shell学习笔记
    如何实现网页标题的闪动提示
    JAVAWEB项目如何实现验证码
    Oralce数据库的优化(面试必问题)
    sqlldr 学习总结1
    各种浏览器的Hack写法(chrome firefox ie等)
    存储过程
    App Store那些事儿
    JBMP学习引导
  • 原文地址:https://www.cnblogs.com/zhaoxinblog/p/13190089.html
Copyright © 2011-2022 走看看