认识字典
可变数据类型,通常用于存储描述一个物体的相关信息,可以用来存储多个数据
数据通过 键值对 形式出现,字典是 无序 的对象集合,即字典不支持下标,而是通过键名查找数据
字典特征
用 dict() 函数
用{ } 定义,键和值之间用 「 : 」,键值对之间用 「 ,」隔开
- 键 「 key 」是索引,键不能重复
- 值 「 value 」是数据
- 值 可以是任何数据类型,但是 键 只能使用 字符串、数字或元组,即不可变类型
- 空字典: { }
dicts = {'name': 'tom','age': 15}
这里 key 分别是 name、age,value 分别是 tom、15
字典方法
增或改
如果 key 存在则修改 key 对应的值,如果 key 不存在则新增此键值对
- 字典 [ key ] = value
删除
pop(key)
a = {'x': 1, 'y': 2}a.pop('x')
字典序列.clear()
- 保留空字典
del 字典 或 del( 字典)
- del 字典[key],可以删除指定key数据 ```python dict1 = {‘name’: ‘Tom’, ‘age’: 20, ‘gender’: ‘男’} del dict1[‘gender’] print(dict1)
{‘name’: ‘Tom’, ‘age’: 20} ```
查找
通过 key 查找 value
- 字典序列[key]
- 存在返回值,不存在返回错误 ```python dict1 = {‘name’: ‘Tom’, ‘age’: 20, ‘gender’: ‘男’} print(dict1[‘name’]) print(dict1[‘id’])
Tom 报错 ```
- get()函数查找
- 字典序列.get(key, 默认值)
- 如果当前查找的 key 不存在则返回第二个参数(默认值),如果省略第二个参数,则返回 None ```python dict1 = {‘name’: ‘Tom’, ‘age’: 20, ‘gender’: ‘男’} print(dict1.get(‘name’)) print(dict1[‘name’])
print(dict1.get(‘id’, 110)) # id 在字典中不存在
print(dict1.get(‘id’))
Tom Tom
110 # 设置默认值 None ```
通过函数查找 key、value
- 字典.keys(),获取所有 key 列表
- 字典.values(),获取所有 value 列表
- 字典.items(),获取所有 (key, value) 元组列表 ```python dict1={‘name’:’Tom’,’age’:20,’gender’:’男’} print(dict1.keys())
dict_keys([‘name’, ‘age’, ‘gender’]) ``` 返回的均是可迭代对象,可以用 for 循环
循环遍历
- 遍历字典的 key,for key in 字典序列.keys() ```python dict1 = {‘name’: ‘Tom’, ‘age’: 20, ‘gender’: ‘男’} for key in dict1.keys(): print(key)
name age gender ```
遍历字典的 value
- for value in 字典序列.values()
- 遍历字典的元素( key 和 value )
for item in 字典序列.items()
- 返回元组,元组 1 是 key ,元组 2 是 value
遍历字典的的键值对,即 拆包
- for key, value in 字典序列.items() ```python dict1 = {‘name’: ‘Tom’, ‘age’: 20, ‘gender’: ‘男’} for key, value in dict1.items(): print(f’{key} = {value}’)
name = tom age = 20 gender = 男 ```
