python两个_多个字典合并相加
程序员文章站
2022-05-29 08:37:47
这只是符合比较正常的需求和场景。 #一、适用合并两个字典(key不能相同否则会被覆盖),简单,好用。 1 A = {'a': 11, 'b': 22} 2 B = {'c': 48, 'd': 13} 3 #update() 把字典B的键/值对更新到A里 4 A.update(B) 5 print( ......
这只是符合比较正常的需求和场景。
#一、适用合并两个字典(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()
三、解包法和第一种效果(限制)一样,b吃掉a。
1 a = {'a': 11, 'b': 22} 2 b = {'a': 48, 'b': 13} 3 print({**a,**b})
欢迎补充一些较好质量的方法、思路及代码。(个人以为这类方法应该少用for if else,可以提高代码可视化)。