我正在尝试在 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
这可行,但我正在寻找一种更简洁或更惯用的方法,也许使用内置函数或像集合这样的库。
collections.Counter
做你想做的事;至少只要你的值是整数。
import collections
merged = collections.Counter(dict1)
merged.update(dict2)
print(merged)
# Counter({'c': 55, 'b': 35, 'd': 35, 'a': 10})