Простой и удобный счетчик на Python
Рассмотрим удобный инструмент быстрого подсчета статистики встречаемости объектов в наборе данных, не требующий использование специализированных научных библиотек. Это класс Counter из модуля collections:
from collections import Counter cnt = Counter()
Техника работы с ним заключается в добавлении наборов данных, после чего сразу становится доступна статистика:
w1 = ['бананы', 'яблоки', 'виноград'] cnt.update(w1) cnt
w2 = ['арбузы', 'виноград'] cnt.update(w2) cnt
Очистить экземпляр класса от содержимого можно его методом clear:
cnt.clear() cnt
В качестве источников данных в Counter-е могут выступать не только списки, но и словари, и другие счетчики:
w1 = {'бананы':2, 'яблоки':3, 'виноград':1}
w2 = {'арбузы':2, 'виноград':3}
for it in [w1, w2]:
cnt.update(it)
cntcnt.clear()
w1 = {'бананы':2, 'яблоки':3, 'виноград':1}
cnt1 = Counter()
cnt1.update(w1)
w2 = {'арбузы':2, 'виноград':3}
cnt2 = Counter()
cnt2.update(w2)
for it in [cnt1, cnt2]:
cnt.update(it)
cntКлючевой опцией объекта Counter является вывод n самых частых элементов, который осуществляется методом most_common:
cnt.most_common(2)
Без аргументов данный метод возвращает все элементы и их счетчики в виде списка кортежей. Например, выведем все элементы со счетчиком больше 2:
[it for it, c in cnt.most_common() if c>2]
Для подсчета количества уникальных элементов используйте функцию len:
len(cnt)
Получить сумму элементов можно функцией sum, вызванной на значениях статистики элементов (cnt.values):
display(cnt.values()) sum(cnt.values())