合并2个字典,如果有公共键则尝试更新总和?

Som*_*ody 1 python dictionary

我有两本词典,我需要将它们合并起来。但如果一个键在两个字典中都有,则新值必须是前两个值的和。这就是我尝试过的:

dict1 = {
    "Elizabeth Alexandra Mary": 250000,
    "Barack Hussein Obama II": 1750000,
    "Zhang Aiqin": 1000,
    "Dean Craig Pelton": 1000000,
    }

dict2 = {
    "Christopher Larkin": 50000,
    "Eyal Shani": 5000,
    "Dean Craig Pelton": 2500000,
    "Sheldon Cooper": 15600000
    }

dict1.update(dict2)
print('Updated dictionary:')
print(dict1)
Run Code Online (Sandbox Code Playgroud)

但Dean Craig Pelton的价值是2500000,而不是我想要的3500000。我怎样才能解决这个问题?

Dan*_*Hao 9

其他建议也会起作用。但如果你想尝试这种更Pythonic的方式:(或者只是懒惰...... ;-)

from collections import Counter

d3 = Counter(dict1) + Counter(dict2)

print(d3)           # to confirm it

Run Code Online (Sandbox Code Playgroud)

输出:

Counter({'Sheldon Cooper': 15600000, 'Dean Craig Pelton': 3500000, 'Barack Hussein Obama II': 1750000, 'Elizabeth Alexandra Mary': 250000, 'Christopher Larkin': 50000, 'Eyal Shani': 5000, 'Zhang Aiqin': 1000})
Run Code Online (Sandbox Code Playgroud)