2015-09-10 70 views
5

我有一個來自collections模塊的計數器。總結所有計數的最佳方式是什麼?用Python計算一個計數器的所有值

例如,我有:

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

,並想獲得7返回的值。據我所知,函數sum用於將多個計數器一起添加。

+0

,如果你有計數器的來源(例如'my_counter = Counter(source)'),您可以只執行'len(source)' – acushner

回答

10

像這樣的事情會做

sum(my_counter.itervalues()) 

這樣,你不產生任何中間數據結構,只是得到的總和懶洋洋地評估。

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

與櫃檯工作常見模式對象:SUM(c.values())
#總所有罪狀

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

+0

在Python 3.6.1中正常工作! –