【08】字典

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)  
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容