Простой и удобный счетчик на 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) cnt
cnt.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())