python第四天

python第四天

字典

  • 字典的初识:

  • 列表可以存储大量的数据,数据之间的关联性不强

    • ['太白', 18, '男', '大壮', 3, '男']

    • 列表的查询速度比较慢。

  • 容器型数据类型:dict。

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

    • 可变(不可哈希)的数据类型:list dict set

    • 不可变(可哈希)的数据类型: str bool int tuple

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

      • dic = {'太白':
             {'name': '太白金星','age': 18, 'sex': '男'},
         'python22期': 
             ['朱光亚', '大壮', '雪飞', '岑哥'],
         }
        
    • 键必须是不可变的数据类型:int , str (bool tuple几乎不用) 唯一的。

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

    • 字典3.5x版本之前(包括3.5)是无序的。

    • 字典3.6x会按照初次建立字典的顺序排列,学术上不认为是有序的。

    • 字典3.7x以后都是有序的。

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

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

    • 字典的创建

      # 方式一:
      # dic = dict((('one', 1), ('two', 2), ('three', 3)))
      # print(dic)  # {'one': 1, 'two': 2, 'three': 3}
      
      # 方式二:
      # dic = dict(one=1, two=2, three=3)
      # print(dic)
      
      # 方式三:
      # dic = dict({'one': 1, 'two': 2, 'three': 3})
      # print(dic)
      
    • 验证字典的合法性

      dic = {[1,2,3]: 'alex', 1: 666}  # 键要不可变的数据类型
      print(dic)
      dic = {1: 'alex', 1: '太白', 2: 'wusir'}  # 键要唯一
      print(dic)
      
      • 字典的增删改查
    dic = {'name': '太白', 'age': 18, 'hobby_list': ['直男', '钢管', '开车']}
    
    增:
    # 直接增加 有则改之,无则增加
    # dic['sex'] = '男'
    # dic['age'] = 23  # 改
    # print(dic)
    
    setdefault  有则不变,无则增加
    # dic.setdefault('hobby')
    # dic.setdefault('hobby', '球类运动')
    # dic.setdefault('age', 45)
    # print(dic)
    
    删pop 按照键删除键值对, 有返回值  ***
    # 设置第二个参数则无论字典中有无此键都不会报错
    # dic.pop('age')
    # ret = dic.pop('age')
    # ret = dic.pop('hobby','没有此键')
    # print(ret)
    # print(dic)
    
    
    clear  清空  **
    # dic.clear()
    # print(dic)
    
    del  **
    
    # # del dic['age']
    # del dic['age1']
    # print(dic)
    
    改
    dic['name'] = 'alex'
    # print(dic)
    
    查
    # print(dic['hobby_list'])
    # print(dic['hobby_list1'])
    get  ***查找键返回值,找不到也可以设置返回值
    # l1 = dic.get('hobby_list')
    # l1 = dic.get('hobby_list1','没有此键sb')  # 可以设置返回值
    # print(l1)
    
    三个特殊的
    keys()以列表返回一个字典所有的键
    values()以列表返回字典中的所有值
    items()以列表返回可遍历的(键, 值) 元组数组
    # print(dic.keys(),type(dic.keys()))
    # 可以转化成列表
    # print(list(dic.keys()))
    # for key in dic.keys():
    #     print(key)
    # for key in dic:
    #     print(key)
    # values()
    # print(dic.values())
    # print(list(dic.values()))
    # for value in dic.values():
    #     print(value)
    # items()
    # print(dic.items())
    # for key,value in dic.items():
    #     print(key,value)
    # a,b = ('name', '太白')
    # print(a,b)
    
posted @ 2020-01-06 20:25  幻海梦蝶  阅读(100)  评论(0编辑  收藏  举报