当前位置: 移动技术网 > IT编程>脚本编程>Python > python两个_多个字典合并相加

python两个_多个字典合并相加

2019年12月27日  | 移动技术网IT编程  | 我要评论

佟本善,武汉装修公司排名,火影中文论坛

这只是符合比较正常的需求和场景。

#一、适用合并两个字典(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,可以提高代码可视化)。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网