目录
字典
字典的应用场景
思考:如果有多个数据,例如:‘Tom’,‘男’,‘20’,如何快速储存
答:列表
list = [‘Tom’,‘男’,‘20’]
思考:如何查找到数据'Tom'?
答:查找到下标为0的数据即可。
list[0]
思考:如果将来数据顺序发生变化,还能用list[0]访问到数据Tom吗?
答:不能,数据下标会跟着改变。
思考:有什么办法能解决上述数据顺序改变的问题呢?
答: 字典。
字典里面的数据是以键值对形式出现,字典数据和数据顺序没有关系,即字典不支持下标,后期无论数据如何变化,只需要按照对应的键的名字查找数据即可。
创建字典的语法
字典特点:
符号为大括号
数据为键值对形式出现
各个键值对之间用逗号隔开
创建字典
# 有数据的字典
>>> d1 = {'name':'溏心蛋','age':'18','gender':'男'}
>>> d1
{'name': '溏心蛋', 'age': '18', 'gender': '男'}
>>> type(d1)
<class 'dict'>
# 创建空字典
>>> d2 = {}
>>> type(d2)
<class 'dict'>
字典常见操作
增
语法:字典[key] = 值
注意:如果key存在则修改这个key对应的值,如果key不存在则新增此键值对
# 修改原有数据
>>> d1 = {'name':'溏心蛋','age':'18','gender':'男'}
>>> d1['name'] = '小鹿'
>>> d1
{'name': '小鹿', 'age': '18', 'gender': '男'}
# 新增没有的数据
>>> d1['id'] = 520
>>> d1
{'name': '小鹿', 'age': '18', 'gender': '男', 'id': 520}
注意:字典为可变类型。
删
del()/del:删除字典或删除字典中指定键值对
>>> d1 = {'name':'溏心蛋','age':'18','gender':'男'}
>>> del d1['gender']
>>> d1
{'name': '溏心蛋', 'age': '18'}
>>> del d1
>>> d1
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'd1' is not defined. Did you mean: 't1'?
clear():清空字典
>>> d1 = {'name':'溏心蛋','age':'18','gender':'男'}
>>> d1.clear()
>>> d1
{}
改
语法:字典[key] = 值
注意:如果key存在则修改这个key对应的值,如果key不存在则新增此键值对。
查
key值查找
>>> d1 = {'name':'溏心蛋','age':'18','gender':'男'}
>>> d1['name']
'溏心蛋'
>>> d1['id']
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'id'
如果当前查找的key存在,则返回对应的值,否则报错。
get()
语法
字典.get(key,默认值)
注意:如果当前查找的key不存在则返回第二个参数(默认值),如果省略第二个参数,则返回None。
>>> d1 = {'name':'溏心蛋','age':'18','gender':'男'}
>>> d1.get('name')
'溏心蛋'
>>> d1.get('id')
>>> d1.get('id',110)
110
keys() :获得字典的所有key
>>> d1 = {'name':'溏心蛋','age':'18','gender':'男'}
>>> d1.keys()
dict_keys(['name', 'age', 'gender'])
values():返回所有的值
>>> d1 = {'name':'溏心蛋','age':'18','gender':'男'}
>>> d1.values()
dict_values(['溏心蛋', '18', '男'])
items():返回以键值对为一组的元祖组成的列表
>>> d1 = {'name':'溏心蛋','age':'18','gender':'男'}
>>> d1.items()
dict_items([('name', '溏心蛋'), ('age', '18'), ('gender', '男')])
字典的循环遍历
1. 遍历字典的key
>>> for key in d1.keys():
... key
...
'name'
'age'
'gender'
2.遍历字典的values
>>> d1 = {'name':'溏心蛋','age':'18','gender':'男'}
>>> for values in d1.values():
... values
...
'溏心蛋'
'18'
'男'
3.遍历字典中的元素
>>> d1 = {'name':'溏心蛋','age':'18','gender':'男'}
>>> for item in d1.items():
... item
...
('name', '溏心蛋')
('age', '18')
('gender', '男')
4. 遍历字典的键值对
>>> d1 = {'name':'溏心蛋','age':'18','gender':'男'}
>>> for key,value in d1.items():
... f'{key}={value}'
...
'name=溏心蛋'
'age=18'
'gender=男'