python_dict
字典 dict
dict 字典是一些 ‘键:值’ 对的集合。
用键来索引
字典是可变对象,值的类型不限,键类型是不可变类型
键类型不能是列表、元组、集合、字典
创建字典
关键字创建字典
1 | dict(a=3, b=33) |
1 | {'a': 3, 'b': 33} |
zip()函数生成关键字参数创建
1 | dict(zip(['a', 'b'], [3, 4])) |
1 | {'a': 3, 'b': 4} |
fromkeys()函数创建
1 | dict.fromkeys(['a', 'b'], [3, 4]) |
1 | {'a': [3, 4], 'b': [3, 4]} |
1 | dict.fromkeys(['a', 'b'], 11) |
1 | {'a': 11, 'b': 11} |
1 | dict.fromkeys('a', [3, 4]) |
1 | {'a': [3, 4]} |
解析式创建字典
1 | {k: v for k, v in [('a', 1), ('b', 2), ('c',3)]} |
1 | {'a': 1, 'b': 2, 'c': 3} |
1 | {k:v for k,v in zip(['a','b','c'],[1,2,3])} |
1 | {'a': 1, 'b': 2, 'c': 3} |
索引
d[key] 字典索引返回对应的值
- 如果key不存在则抛出KeyError异常
1 | dt1 = dict(zip(['a', 'b', 'c'], [11, 22, 33])) |
1 | {'a': 11, 'b': 22, 'c': 33} |
1 | dt1['b'] |
1 | 22 |
键测试
- key in d。测试指定键是否存在字典中
1 | 'c' in dt1 |
1 | True |
字典的迭代:
d.keys()
- 返回一个dict_keys对象,它是一个可迭代对象,迭代时返回键序列
1 | # 返回迭代器 |
1 | dict_keys(['a', 'b', 'c']) |
d.values():
- 返回一个dict_values对象,它是一个可迭代对象,迭代时返回值序列
1 | dt1.values() |
1 | dict_values([11, 22, 33]) |
d.items():
- 返回一个dict_items对象,它是一个可迭代对象, 迭代时返回元组(键,值)的序列
1 | dt1.items() |
1 | dict_items([('a', 11), ('b', 22), ('c', 33)]) |
字典的操作
获取字典的内容
1 | [x for x in dt1] |
1 | ['a', 'b', 'c'] |
字典的增删改
1 | d1= dict(zip(['a', 'b', 'c'], [11, 22, 33])) |
1 | {'a': 11, 'b': 22, 'c': 33} |
1 | d1= dict(zip(['a', 'b', 'c'], [11, 22, 33])) |
1 | 11 |
1 | d1= dict(zip(['a', 'b', 'c'], [11, 22, 33])) |
1 | {'b': 22, 'c': 33} |
1 | d1= dict(zip(['a', 'b', 'c'], [11, 22, 33])) |
1 | {'a': 11, 'b': 22, 'c': 33} |
1 | len(d1) |
1 | 3 |
合并字典
1 | d1= dict(zip(['a', 'b', 'c'], [11, 22, 33])) |
1 | {'a': 11, 'b': 22, 'c': 33, 'd': 1, 'e': 2, 'f': 3} |
1 | d1= dict(zip(['a', 'b', 'c'], [11, 22, 33])) |
1 | {'a': 11, 'b': 22, 'c': 1, 'd': 2, 'e': 3} |