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

Baz*_*Baz 43 python counter python-3.x

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

我试过了:

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

但是这给了21而不是9

NPE*_*NPE 61

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

要累计计数,请使用:

In [4]: sum(Counter([1,2,3,4,5,1,2,1,6]).values())
Out[4]: 9
Run Code Online (Sandbox Code Playgroud)

这个习惯用法在文档中的 "Common patterns"下提到.


Mar*_*ers 17

求和值:

sum(some_counter.values())
Run Code Online (Sandbox Code Playgroud)

演示:

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


Xav*_*hot 5

Python 3.10 release schedule,开始,Counter给出一个total()提供计数总和的函数:

from collections import Counter

Counter([1,2,3,4,5,1,2,1,6]).total()
# 9
Run Code Online (Sandbox Code Playgroud)