python字典操作
点击上方蓝字关注我们

字典定义
以键值对方式存在的无序数据的组合就是字典
字典基本操作
- 创建空字典
变量 = {}
变量 = dict()
1 | In [1]: d1 = {} |
- 创建多个元素的字典
2.1 变量 = {键:值,键:值….}
1 | In [5]: d1 = {"a": 1, "b": 2} |
2.2 变量 = dict({键:值,键:值….})
1 | In [7]: d2 = dict({"c": 3}) |
2.3
变量 = dict(键=值,键=值…)
1 | In [9]: d2 = dict(c=3) |
2.4
变量 = dict([(键,值),(键,值)…])
变量 = dict([[键,值],[键,值]…])
变量 = dict(((键,值),(键,值)…))
1 | In [11]: d3 = dict([("a", 1),("b", 2)]) |
2.5
变量 = dict(zip((键,键…),(值,值…)))
1 | In [13]: d4 = dict(zip(("a", "b"),(1,2))) |
- 访问字典元素
变量[键]
1 | In [18]: d5 = {"a": 1, "b": 2} |
- 添加字典元素
变量[新键] = 值
1 | In [20]: d5["c"] = 3 |
- 修改字典元素
变量[键] = 新值
1 | In [22]: d5["c"] = 33 |
- 删除字典元素
del 变量[键]
1 | In [24]: del d5["c"] |
- 检测键是否在字典中
值 in 字典
1 | In [25]: d5 |
- 检测键是否不在字典中
值 not in 字典
1 | In [28]: "a" not in d5 |
- 遍历字典
9.1 遍历键
for 变量 in 字典:
#使用变量遍历所有的键,有键就可以通过变量访问其值
1 | In [30]: for i in d5: |
9.2 遍历键和值
for 变量i,变量j in 字典.items():
#使用变量i遍历所有键,通过变量j遍历所有值
1 | In [31]: for k,v in d5.items(): |
字典常用函数操作
- get(键, 不存在返回值): 根据键获取指定的值
1 | In [35]: d5 |
- len(字典): 字典长度
1 | In [40]: len(d5) |
- max(字典): 字典中的最大的键
1 | In [38]: max(d5) |
- min(字典): 字典中的最小的键
1 | In [73]: min(d9) |
- clear(): 清空字典
1 | In [49]: d55 |
- copy(): 复制字典
1 | In [45]: d55 = d5.copy() |
- items(): 将字典的键值转化成类似元组的形式方便遍历
1 | In [43]: d5.items() |
- keys(): 将字典的所有键组成一个序列
1 | In [42]: d5.keys() |
- values(): 将字典的所有值组成一个序列
1 | In [44]: d5.values() |
- pop(键, 不存在返回值): 移除字典中指定的元素
不填默认值: 不存在会报错
1 | In [52]: d5 |
- popitem(): 移除字典中的键值对, 字典为空的话会报错
1 | In [58]: d5 |
- setdefault(键, 默认值): 添加一个元素
如果键存在, 则不会进行任何操作
如果键不存在, 如果有默认值, 则添加, 如果没有, 值为None
1 | In [60]: d5.setdefault("a", 1) |
- update(): 修改字典中的值
13.1 字典.update(键=值)
1 | In [63]: d5 |
13.2 字典.update({键:值})
1 | In [66]: d5.update({"c": 3}) |
字典推导式
- 普通的字典推导式
变量= {key:value for key,value in 字典.items()}
1 | In [68]: d5 |
- 带有判断条件的字典推导式
变量= {key:value for key,value in 字典.items() if 条件表达式}
1 | In [71]: d7 = {k:v for k,v in d5.items() if k != "c"} |
- 多个循环的字典推导式
新的字典中元素个数=字典1中元素个数 * 字典2中的元素个数
变量 = {i+x:j+y for i,j in 字典1.items for x,y in 字典2.items()}
1 | In [75]: d8 = {k+k1:v+v1 for k,v in d5.items() for k1, v1 in d7.items()} |
- 带有判断条件的多个循环的字典推导式
新的字典数量由判断条件决定 = 符合条件的剩余的字典1个数 * 符合条件的剩余的字典2个数
变量 = {i+x:j+y for i,j in 字典1.items for x,y in 字典2.items() if 条件表达式}
1 | In [83]: d9 = {k+k1:v+v1 for k,v in d5.items() for k1, v1 in d7.items() if k != "a" and v1 > 1} |
