如何添加两个字典的值? 例如:
a = {'a':10,'b':11,'c':20}
b = {'a':1,'b':1,'c':1}
结果必须是
c = {'a':11,'b':12,'c':21}
答案 0 :(得分:5)
您可以使用计数器类集合库轻松添加两个词典,例如:
from collections import Counter
a = {'a':10,'b':11,'c':20}
b = {'a':1,'b':1,'c':1}
a = Counter(a)
b = Counter(b)
c = dict(a + b)
print c
<强>输出强>
{'c': 21, 'b': 12, 'a': 11}
答案 1 :(得分:1)
接下来请一些努力......
a = {'a':10,'b':11,'c':20}
b = {'a':1,'b':1,'c':1}
c = {k: a[k] + b[k] for k in a}
print(c) # {'c': 21, 'b': 12, 'a': 11}
如果我们假设a
和b
具有相同的键,则上述工作正常。
如果不是这种情况,您可以尝试以下方法:
a = {'a': 10, 'b': 11, 'c': 20, 'h': 5}
b = {'a': 1, 'b': 1, 'c': 1, 'd': 12}
all_keys = set(a.keys()) # in Python 3 it can be simplified as `all_keys = set(a)`
all_keys.update(b.keys()) # in Python 3 it can be simplified as `all_keys.update(b)`
c = {k: a.get(k, 0) + b.get(k, 0) for k in all_keys}
print(c) # {'c': 21, 'h': 5, 'a': 11, 'b': 12, 'd': 12}
请注意,我在两个字典上都使用get
来跳过对密钥存在的检查。