两个或者多个字典的合并,有时候会用到多个字典合成一个字典.有简单的方法也有复杂的方法..推荐使用第二种.
一:使用for进行遍历添加:
A_dict={'1':'A','2':'B','3':'C'}
B_dict={'4':'D','5':'E','6':'F'}
C_dict = {}
for key,value in A_dict.items():
C_dict[key]=value
for key,value in B_dict.items():
C_dict[key]=value
print C_dict
输出结果:
{'1': 'A', '3': 'C', '2': 'B', '5': 'E', '4': 'D', '6': 'F'}
这样未免麻烦,两个字典也还好,多个字典就比较麻烦了,推荐使用第二种方法来实现字典的快速合并
二:使用Python提供的update():
C_dict = {}
A_dict={'1':'A','2':'B','3':'C'}
B_dict={'4':'D','5':'E','6':'F'}
C_dict.update(A_dict)
C_dict.update(B_dict)
print(C_dict)
输出结果:
{'1': 'A', '2': 'B', '3': 'C', '4': 'D', '5': 'E', '6': 'F'}
使用update的时候值得注意的地方:
1:update不能连续使用:
C_dict = {}
A_dict={'1':'A','2':'B','3':'C'}
B_dict={'4':'D','5':'E','6':'F'}
C_dict.update(A_dict).update(B_dict)
print(C_dict)
报错信息:
AttributeError: 'NoneType' object has no attribute 'update'
2:不能使用参数进行接收
只使用参数接收一次的时候:
C_dict = {}
A_dict={'1':'A','2':'B','3':'C'}
B_dict={'4':'D','5':'E','6':'F'}
C_dict = C_dict.update(A_dict)
# C_dict = C_dict.update(B_dict) # 注释掉
print(C_dict)
输出信息:
None
多次使用参数接收的时候:
C_dict = {}
A_dict={'1':'A','2':'B','3':'C'}
B_dict={'4':'D','5':'E','6':'F'}
C_dict = C_dict.update(A_dict)
C_dict = C_dict.update(B_dict)
print(C_dict)
输出信息:
Traceback (most recent call last):
File "E:/Pycharm/tcp/测试字典合并.py", line 15, in <module>
C_dict = C_dict.update(B_dict)
AttributeError: 'NoneType' object has no attribute 'update'
所以不要使用参数进行接收.就和list的append一样.
推荐使用第二种,第一种很常见,但是代码量略多.