美文网首页
【08】字典

【08】字典

作者: Z_JoonGi | 来源:发表于2019-03-17 13:03 被阅读0次

    1.什么是字典(dict)

    • 字典是python内置的一个容器型数据类型:可变(支持增删改)、无序(不支持下标操作)
    • {键1:值1, 键2:值2,键3:值3,...}
    • 键(key):a.不可变 b.唯一
    • 值(value):和列表元素要求一致
    注意:键值是成对出现的;字典存数据,实质存的是值,键是值的索引。
    dict1 = {'a': 100, 'b': 'abc', 'c': [1, 2], 'd': {'a': 100}}
    print(dict1)
    
    dict1 = {'a': 100, 'b': 'abc', 'a': [1, 2]}
    print(dict1)   # {'a': [1, 2], 'b': 'abc'}
    

    2.什么时候用字典

    • 如同时保存多个数据是具有相同意义的数据,用列表
    • 如果同时保存多个数据的意义不同,就使用字典

    3.增删改查

    3.1查

    • 1)获取key对应的值:
    方法一:dict[key]
    注意:key不存在的时候会报错
    dog1 = {'name': '大黄', 'type': '中华田园犬', 'color': 'yellow', 'age': 3}
    print(dog1['type'])
    # print(dog1['gender'])    # KeyError: 'gender'
    
    方法二:dict.get(key)
    注意:如果key值不存在,则返回None
    • dict.get(key, 默认值) (如果key不存在返回指定默认值)
    print(dog1.get('color'))
    print(dog1.get('gender'))
    print(dog1.get('gender', '公狗'))
    
    • 2) 遍历
    注意:直接遍历字典拿到是key
    dog1 = {'name': '大黄', 'type': '中华田园犬', 'color': 'yellow', 'age': 3}
    for key in dog1:
        print(key, dog1[key])
    

    3.2增/改 - 添加键值对

    1) dict[key] = value
    • 当key不存在的时候就是添加键值对;当key存在的时候,就是修改key对应的值
    film = {'name': '流浪地球', '主演': '吴京', 'time': '2019-2-5'}
    film['票房'] = '40亿'
    print(film)
    
    film['time'] = '2019-2-6'
    print(film)
    
    film.setdefault('a', 10)
    print(film)
    
    2) dict.setdefault(key, value)
    • 只能添加键值对,不能修改
    film.setdefault('name', '战狼2')
    print(film)
    

    3.3 删 - 删除键值对

    1)del dict[key]
    • 删除字典中key对应的键值对,如果不存在则会报错
    film = {'name': '流浪地球', '主演': '吴京', 'time': '2019-2-5'}
    del film['time']
    print(film)
    
    2)dict.pop(key)
    • 从字典中取出key对应的值,结果是key对应的值
    name = film.pop('name')
    print(film, name)
    

    4.相关运算符

    1)只支持比较运算符
    print({'a': 10, 'b': 20} == {'b': 20, 'a': 10})    # True
    
    2)in / not in- key in dict (判断字典中是否存在某个key对应的键值对)
    student = {'name': '小明', 'age': 20, 'tel': '16362738493'}
    print('小明' in student)   # False
    print('name' in student)    # True
    
    3) len(), max(), min()
    • dict() - 本身是一个序列,序列中元素是小序列,小序列必须有且只有2个元素,而且这个2个元素中的第一个元素是不可变的
    • 注意:取最大值最小值是取key的最大值和最小值;字典转列表/元祖的时候,是将字典的key取出来作为列表/元祖的元素
    print(len(student))
    print(max(student))
    print(dict(['cb', ['a', 100],  [1000, [1]] ]))
    print(list(student))
    
    #3
    #tel
    #{'c': 'b', 'a': 100, 1000: [1]}
    #['name', 'age', 'tel']
    

    5.相关方法

    1)dict.clear() --清空字典
    student.clear()
    print(student)
    
    2)字典.copy() - 复制字典的内容,产生一个新的字典
    student = {'name': '小明', 'age': 20, 'tel': '16362738493'}
    student1 = student.copy()
    student1['name'] = '小花'
    print(student)
    
    3) dict.fromkeys(序列,值) - 创建一个新的字典,将序列中的元素作为新字典的key,指定的值作为每个key对应的值
    new_dict = dict.fromkeys(['name', 'age', 'gender'], None)
    print(new_dict)
    
    person_keys = ['name', 'age', 'gender']
    person1 = dict.fromkeys(person_keys, None)
    person2 = dict.fromkeys(person_keys, None)
    
    4) 字典1.update(字典2) - 将字典2中的键值对添加到字典1中
    dict1 = {'a': 10, 'b': 20, 'z': 100}
    dict1.update({'c': 30, 'b': 200})
    print(dict1)  
    

    相关文章

      网友评论

          本文标题:【08】字典

          本文链接:https://www.haomeiwen.com/subject/xcaymqtx.html