我有 2 个字典,它们共享大约 80% 的相同键,值是 2 个元素列表。我需要从这三个字典中创建一个包含所有键的新字典,包括每个字典唯一的键,并且我需要对相同键的值求和。
dict1 = {'Mike': [10,20], 'John': [12,34], 'Steve': [60,10]}
dict2 = {'Mike': [15,10], 'John': [18,36]}
新词典应该是这样的:
dict3 = {'Mike': [25,30], 'John': [30,70], 'Steve': [60,10]}
知道我应该如何解决这个问题吗?
请您参考如下方法:
有很多方法可以做到这一点,但这里有一种方法可以最大限度地减少查找,如果实际的字典很大,这可能会有所帮助:
keys_1 = set(dict1.keys())
keys_2 = set(dict2.keys())
all_keys = keys_1 | keys_2
for key in all_keys:
a,b = 0,0
if key in keys_1:
a += dict1[key][0]
b += dict1[key][1]
if key in keys_2:
a += dict2[key][0]
b += dict2[key][1]
dict3[key] = [a,b]
