将 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
来自 here:
from collections import Counter
c = Counter([1,2,3,4,5,1,2,1,6])
sum(c.values())
我有一个来自 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
来自 here:
from collections import Counter
c = Counter([1,2,3,4,5,1,2,1,6])
sum(c.values())