使用字典更新添加[重复]

Posted

技术标签:

【中文标题】使用字典更新添加[重复]【英文标题】:Addition using Dictionary updates [duplicate] 【发布时间】:2013-08-10 18:18:32 【问题描述】:

我有一堆字典,例如 ...

u'APPLES': 1
u'PEARS': 7
u'BANANAS': 10

u'APPLES': 9
u'PEARS': 13
u'BANANAS': 20

但是我想将它们加在一起,所以我最终得到"APPLES":10 等。什么是最好的pythonic 方式来做到这一点。

谢谢,

【问题讨论】:

数据是什么形式的?是u'APPLES': 1, u'PEARS': 7, ... 还是[u'APPLES': 1, u'PEARS': 7, ... ] 有点令人失望的是,该问题的 OP 选择了他所做的答案而不是 DiggyF 的答案(这与我的相同......甚至还有不必要的 reduce 替代方案),但是是的,这是一个重复。 【参考方案1】:
from collections import Counter

counts = Counter()

for d in bunch_of_dicts:
    counts.update(d)

【讨论】:

Counter.update 会更简洁。 完美。非常感谢,【参考方案2】:
import collections

totals = collections.Counter()
for d in a_bunch_of_dicts:
    totals.update(d)

【讨论】:

我很惊讶已经 2 分钟了,仍然没有人建议 reduce 导致争论每个 reduce 是否更好作为显式循环。 :)

以上是关于使用字典更新添加[重复]的主要内容,如果未能解决你的问题,请参考以下文章

更新或添加密钥到字典 [重复]

如何迭代更新字典的值并将每个表示添加到列表中[重复]

如何根据密钥是否已存在更新我的字典? [重复]

在两个字典数组中查找重复键以使用新数组字典更新旧数组字典

如何将重复键添加到字典中

如何为内部字典键创建新列表或设置对象,以便不重复更新同一对象?