Python程序组合两个字典,为公共(public)键添加值

标签 python dictionary

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

这是两个字典:

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/

相关文章:

python - Google Places Api - 传递具有正确编码的地址

Python Pandas 防止单元格换行

python - 具有多个 worker 的 gunicorn 中的变量访问

python - 使用 zipfile 提取大文件

时间:2019-03-08 标签:c++STLmap::find()

java - 将值映射到列表

Python - Pandas - 编辑重复的项目保留在最后

python - 处理可选的python字典字段

c++ - std::unordered_map:多线程插入?

python - python 将具有相同键值对的多个字典合并为一个字典