2015-09-10 5 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 

Общие шаблоны для работы со счетчиком объектов: сумма (c.values ​​())
# сумма всех подсчетов

Источник: https://docs.python.org/2/library/collections.html

+0

Правильно работать в Python 3.6.1! –

Смежные вопросы