首页 > 解决方案 > Python程序组合两个字典为公共键添加值

问题描述

我有两个字典,我需要将它们组合起来。我需要对相似键的值求和,而不同的键使它们没有求和。

这是两个字典:

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}

标签: pythondictionary

解决方案


没有的版本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-loop:

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)

推荐阅读