61

我正在与collections.Counter()柜台合作。我想以一种有意义的方式将其中两个结合起来。

假设我有 2 个柜台,比如说,

Counter({'menu': 20, 'good': 15, 'happy': 10, 'bar': 5})

Counter({'menu': 1, 'good': 1, 'bar': 3})

我试图结束:

Counter({'menu': 21, 'good': 16, 'happy': 10,'bar': 8})

我怎样才能做到这一点?

4

1 回答 1

113

您需要做的就是添加它们:

>>> from collections import Counter
>>> a = Counter({'menu': 20, 'good': 15, 'happy': 10, 'bar': 5})
>>> b = Counter({'menu': 1, 'good': 1, 'bar': 3})
>>> a + b
Counter({'menu': 21, 'good': 16, 'happy': 10, 'bar': 8})

文档

提供了几种数学运算来组合 Counter 对象以生成多重集(计数大于零的计数器)。加法和减法通过增加或减少相应元素的计数来组合计数器。

请注意,如果您想通过Counter就地修改而不是创建新的来节省内存,您可以执行a.update(b)or b.update(a)

于 2013-10-14T08:20:38.030 回答