如何在Python中合并两个字典,同时对公共键的值求和?

问题描述 投票:0回答:1

我正在尝试在 Python 中合并两个字典。如果键重叠,我想将两个字典中的值相加。这是一个例子:

dict1 = {'a': 10, 'b': 20, 'c': 30}
dict2 = {'b': 15, 'c': 25, 'd': 35}

期望的输出是:

{'a': 10, 'b': 35, 'c': 55, 'd': 35}

我知道如何使用 update() 或 | 合并字典Python 3.9+ 中的运算符,但我不知道如何处理重叠键的值求和。

有人可以指导我用最 Pythonic 的方式来实现这一目标吗?

我尝试使用 for 循环来迭代两个字典的键并手动对值求和,但感觉效率低下且麻烦:

result = dict1.copy()
for key, value in dict2.items():
    if key in result:
        result[key] += value
    else:
        result[key] = value

这可行,但我正在寻找一种更简洁或更惯用的方法,也许使用内置函数或像集合这样的库。

python dictionary merge sum
1个回答
0
投票

collections.Counter
做你想做的事;至少只要你的值是整数。

import collections

merged = collections.Counter(dict1)
merged.update(dict2)
print(merged)
# Counter({'c': 55, 'b': 35, 'd': 35, 'a': 10})
© www.soinside.com 2019 - 2024. All rights reserved.