将 Python 中计数器的所有值相加 2

Sum all values of a counter in Python 2

我有一个来自 collections 模块的计数器。求和所有计数的最佳方法是什么?

比如我有:

 my_counter = Counter({'a': 2, 'b': 2, 'c': 2, 'd': 1})

并希望获得返回值 7。据我所知,函数 sum 用于将多个计数器加在一起。

因为你的问题是关于 Python 2.7,你应该使用这样的东西

sum(my_counter.itervalues())

在 Python 3.x 上实际上等同于

sum(my_counter.values())

在这两种情况下,您都可以延迟求和并避免使用昂贵的中间数据结构。请注意在 Py 2.x 上使用 Python 3.x 变体,因为在后一种情况下 my_counter.values() 会计算整个计数列表并将其存储在内存中,然后再计算总和。

c = Counter({'a': 2, 'b': 2, 'c': 2, 'd': 1})
len( list(c.elements()) )
>>> from collections import Counter
>>> sum(Counter({'a': 2, 'b': 2, 'c': 2, 'd': 1}).values())
7

Common patterns for working with Counter objects: sum(c.values())
# total of all counts

来源:https://docs.python.org/2/library/collections.html

来自 here:

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