【问题标题】: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 替代方案),但是是的,这是一个重复。

标签: python


【解决方案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 是否更好作为显式循环。 :)
猜你喜欢
  • 1970-01-01
  • 2022-06-13
  • 1970-01-01
  • 1970-01-01
  • 2021-01-04
  • 2011-09-18
  • 2017-12-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多