PYTHON 数据结构 - 字典
1.1 字典
字典是可迭代的,可变数据结构,以键值对存储,通过键来访问,键不能包含重复元素。
| 语句 | 说明 |
|---|---|
| 字典= | 创建字典 |
| 字典 = {}; 字典 = dict() | 创建空字典 |
| value = 字典[key] | 读取键对应的值 |
| 字典[key] = value | 添加或修改元素值 |
| del 字典[key] | 删除元素 |
| len(字典) | 字典的长度 |
| new_dict = 字典.copy() | 复制字典 |
| in, not in | 验证元素是否存在 |
| 字典.keys() | 返回所有键 |
| 字典.values() | 返回所有值 |
| 字典.items() | 返回所有键值对元组 |
| 字典.get(key, defaults=默认值) | 获取键对应的值,没有返回默认值 |
| 字典.setdefault(key,default=None) | 同get,但如果没有这个键则添加并返回 |
| 字典.pop(key,default) | 删除,没有元素返回默认值,没有默认值抛出异常。 |
| 字典.popitem() | 删除最后一个元素,3.7以前版本随机删除 |
| dict.fromkeys(序列,默认值) | 用序列创建字典 |
| 字典.update(另一个字典) | 用另一个字典更新(修改或追加) |
1.2 创建字典
# a = {key:value, key:value, ...}
>>> fruits = {'西瓜':15, '香蕉':20}
>>> fruits
{'西瓜': 15, '香蕉': 20}
# 创建空字典
>>> a = {}
>>> a
{}
>>> a = dict()
>>> a
{}
1.3 读写字典的元素
# 字典[键]
>>> fruits = {'西瓜':15, '香蕉':20}
>>> fruits['西瓜'] # 读取
15
>>> fruits['西瓜'] = 25 # 修改值
>>> fruits['西瓜']
25
1.4 增加和删除元素
# 添加
>>> fruits = {'西瓜':15, '香蕉':20}
>>> fruits['桔子'] = 5 # 没有这个键就是新增,如果有就是修改
>>> fruits
{'西瓜': 15, '香蕉': 20, '桔子': 5}
# 删除
>>> fruits = {'西瓜':15, '香蕉':20}
>>> del fruits['西瓜']
>>> fruits
{'香蕉': 20}
# 删除所有元素
>>> fruits = {'西瓜':15, '香蕉':20}
>>> fruits.clear()
>>> fruits
{}
# 删除字典
del fruits
1.5 字典复制
# 字典.copy()
>>> fruits = {'西瓜':15, '香蕉':20}
>>> len(fruits)
2
>>> a = fruits.copy()
>>> a
{'西瓜': 15, '香蕉': 20}
1.6 遍历字典
1.6.1 遍历键值对
字典.items() 返回元组(key,value) ...
fruits = {'西瓜':15, '香蕉':20}
for key, value in fruits.items():
print(key,value)
1.6.2 遍历键
字典.keys()
fruits = {'西瓜':15, '香蕉':20}
for key in fruits.keys():
print(key)
1.6.3 遍历值
字典.values()
fruits = {'西瓜':15, '香蕉':20}
for value in fruits.values():
print(value)
1.7 其它方法
- 返回指定键的值,不存在返回默认值:get(key, default=None)
>>> fruits = {'西瓜':15, '香蕉':20}
>>> fruits.get('西瓜','没有')
15
>>> fruits.get('桔子','没有')
'没有'
- 返回指定键的值,如果不存在则添加这个键值对:setdefault(key,default=None)
>>> fruits = {'西瓜':15, '香蕉':20}
>>> fruits.setdefault('西瓜',25)
15
>>> fruits.setdefault('桔子',15)
15
>>> fruits
{'西瓜': 15, '香蕉': 20, '桔子': 15}
-
删除:pop(key,default)
删除并返回值,如果没有这个元素返回默认值,如果没有默认值抛出异常。
>>> fruits = {'西瓜':15, '香蕉':20}
>>> fruits.pop('西瓜')
15
>>> fruits
{'香蕉': 20}
>>> fruits.pop('西瓜','删除失败,没有这个键')
'删除失败,没有这个键'
- 用序列创建字典:dict.fromkeys(序列,默认值)
# fromkeys是dict的静态方法
>>> fruits=('西瓜','香蕉','桔子')
>>> my_dict = dict.fromkeys(fruits,0)
>>> my_dict
{'西瓜': 0, '香蕉': 0, '桔子': 0}
- 字典更新(用另一个字典更新,存在修改,不存在添加):update
>>> fruits = {'西瓜':15, '香蕉':20}
>>> other = {'桔子':5}
>>> fruits.update(other)
>>> fruits
{'西瓜': 15, '香蕉': 20, '桔子': 5}

浙公网安备 33010602011771号