集合中所有计数的总和。计数器

时间:2013-09-03 13:24:29

标签: python python-3.x counter

确定collections.Counter对象中所有计数总和的最佳方法是什么?

我试过了:

sum(Counter([1,2,3,4,5,1,2,1,6]))

但这会提供 21 而不是 9

4 个答案:

答案 0 :(得分:52)

您所使用的代码会添加密钥(即列表中的唯一值:1+2+3+4+5+6=21)。

要添加计数,请使用:

In [4]: sum(Counter([1,2,3,4,5,1,2,1,6]).values())
Out[4]: 9

documentation中的“共同模式”下提到了这个习语。

答案 1 :(得分:16)

求和值:

sum(some_counter.values())

演示:

>>> from collections import Counter
>>> c = Counter([1,2,3,4,5,1,2,1,6])
>>> sum(c.values())
9

答案 2 :(得分:1)

Python 3.10 release schedule 开始,Counter 被赋予一个 total() 函数,它提供计数的总和:

from collections import Counter

Counter([1,2,3,4,5,1,2,1,6]).total()
# 9

答案 3 :(得分:0)

sum(Counter([1,2,3,4,5,1,2,1,6]).values())