这只是符合比较正常的需求和场景。
#一、适用合并两个字典(key不能相同否则会被覆盖),简单,好用。
1 A = {'a': 11, 'b': 22}
2 B = {'c': 48, 'd': 13}
3 #update() 把字典B的键/值对更新到A里
4 A.update(B)
5 print(A)
#二、适用多种场合,多字典存在相同key需要合并相加的场景比较适用。
1 def sum_dict(a,b):
2 temp = dict()
3 # python3,dict_keys类似set; | 并集
4 for key in a.keys()| b.keys():
#根据业务需求修改下面方法,
5 temp[key] = sum([d.get(key, 0) for d in (a, b)])
6 return temp
7
8 def test():
9 #python3使用reduce需要先导入
10 from functools import reduce
11 #[a,b,c]列表中的参数可以2个也可以多个,自己尝试。
12 return print(reduce(sum_dict,[a,b,c]))
13
14 a = {'a': 1, 'b': 2, 'c': 3}
15 b = {'a':1,'b':3,'d':4}
16 c = {'g':3,'f':5,'a':10}
17 test()
三、解包法和第一种效果(限制)一样。
1 A = {'a': 11, 'b': 22}
2 B = {'a': 48, 'b': 13}
3 C = {**A,**B}
4 print('A',A)
5 print('B',B)
6 print('C',C)
7 # A {'a': 11, 'b': 22}
8 # B {'a': 48, 'b': 13}
9 # C {'a': 48, 'b': 13}
四、少量嵌套循环(三层内)for..in...好处是:循环逻辑修改、新增比较方便、简单,坏处是:业务增多会有比较多的for...in...
A = {'a': 11, 'b': 22}
B = {'a': 48, 'b': 13}
C = {**A,**B}
print('A',A)
print('B',B)
print('C',C)
# A {'a': 11, 'b': 22}
# B {'a': 48, 'b': 13}
# C {'a': 48, 'b': 13}