具有相同键的两个不同字典的总和值

时间:2013-11-09 20:24:17

标签: python

我有两本词典

first = {'id': 1, 'age': 23}
second = {'id': 4, 'out': 100} 

我希望输出字典为

{'id': 5, 'age': 23, 'out':100}

我试过

>>> dict(first.items() + second.items())
{'age': 23, 'id': 4, 'out': 100}

但是我的身份是4,但我希望它是5。

3 个答案:

答案 0 :(得分:12)

您想使用collections.Counter

from collections import Counter

first = Counter({'id': 1, 'age': 23})
second = Counter({'id': 4, 'out': 100})

first_plus_second = first + second
print first_plus_second

输出:

Counter({'out': 100, 'age': 23, 'id': 5})

如果您需要将结果作为真dict,请使用dict(first_plus_second)

>>> print dict(first_plus_second)
{'age': 23, 'id': 5, 'out': 100}

答案 1 :(得分:0)

如果要将值从第二个添加到第一个,可以这样做:

first = {'id': 1, 'age': 23}
second = {'id': 4, 'out': 100}

for k in second:
    if k in first:
        first[k] += second[k]
    else:
        first[k] = second[k]
print first

以上将输出:

{'age': 23, 'id': 5, 'out': 100}

答案 2 :(得分:0)

您可以随后更新'id'密钥:

result = dict(first.items() + second.items())
result['id'] = first['id'] + second['id']