Сумма всех счетов в коллекциях.
Каков наилучший способ установить сумму всех подсчетов в объекте collections.Counter
?
Я пробовал:
sum(Counter([1,2,3,4,5,1,2,1,6]))
но это дает 21 вместо 9?
Ответы
Ответ 1
В коде, который вы добавили ключи (т.е. уникальные значения в списке: 1+2+3+4+5+6=21
).
Чтобы добавить подсчет, используйте:
In [4]: sum(Counter([1,2,3,4,5,1,2,1,6]).values())
Out[4]: 9
Эта идиома упоминается в документации в разделе "Общие шаблоны".
Ответ 2
Суммируйте значения:
sum(some_counter.values())
Демо:
>>> from collections import Counter
>>> c = Counter([1,2,3,4,5,1,2,1,6])
>>> sum(c.values())
9
Ответ 3
sum(Counter([1,2,3,4,5,1,2,1,6]).values())
Ответ 4
Вы также можете использовать:
len(Counter([1,2,3,4,5,1,2,1,6]).elements())