我有两个字典,我需要将它们合并起来。我需要对相似键的值求和,而不同键则不求和。
这是两个字典:
d1 = {'a': 100, 'b': 200, 'c':300}
d2 = {'a': 300, 'b': 200, 'd':400}
预期结果:
d3= {'b': 400, 'd': 400, 'a': 400, 'c': 300}
我已经成功求和并将它们添加到第三个字典中,但我不知道如何添加不同的值。
我的尝试
d1 = {'a': 100, 'b': 200, 'c':300}
d2 = {'a': 300, 'b': 200, 'd':400}
d3 = {}
for i, j in d1.items():
for x, y in d2.items():
if i == x:
d3[i]=(j+y)
print(d3)
My results = {'a': 400, 'b': 400}
最佳答案
没有collections.Counter
的版本:
d1 = {'a': 100, 'b': 200, 'c':300}
d2 = {'a': 300, 'b': 200, 'd':400}
d = {k: d1.get(k, 0) + d2.get(k, 0) for k in d1.keys() | d2.keys()}
print(d)
打印:
{'b': 400, 'c': 300, 'd': 400, 'a': 400}
编辑:使用for
-循环:
d1 = {'a': 100, 'b': 200, 'c':300}
d2 = {'a': 300, 'b': 200, 'd':400}
d = {}
for k in d1.keys() | d2.keys():
d[k] = d1.get(k, 0) + d2.get(k, 0)
print(d)
关于Python程序组合两个字典,为公共(public)键添加值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57253784/