鉴于3路类型的字典D1,D2和D3:
D1
{'a':1,'b':2,'c':3, 'd':0)
D2
{'b':76}
D3
{'a': 45, 'c':0}
有迹象表明,通用于多个字典一些关键的名称(在现实中,他们将代表相同的真实对象)。 其他如在D1“d”只存在于D2。 我希望将所有类型的字典一起, 首先先总结了常见的键的值,以结束了:
{'a':46, 'b':78, 'c':3, 'd': 0}
如果每个字典大小相同并且包含相同的键,我可以这样做:
summedAndCombined = {}
for k,v in d1.items():
summedAndCombined[k] = d1[k]+d2[k]+d3[k]
但是,这会尽快到达一个关键是在D1,但不是在别人打破。 我们如何实现这一目标?
UPDATE
不是重复。 collections.Counter 几乎工作,但关键d从所得的计数器,如果丢失密钥d的值是零,它是以上。
In [128]: d1 = {'a':1,'b':2,'c':3, 'd':0}
In [129]: d2 = {'b':76}
In [130]: d3 = {'a': 45, 'c':0}
In [131]: from collections import Counter
In [132]: Counter(d1) + Counter(d2) + Counter(d3)
Out[132]: Counter({'b': 78, 'a': 46, 'c': 3})