Найти в Дзене
Машинное обучение

Подсчет наиболее часто встречающихся элементов в итерируемом объекте Python

Итерируемые (перебираемые) объекты — это коллекция важных структур данных в Python. Например, к ним относятся такие встроенные типы, как строки, списки и словари. Инструмент Counter из модуля collections очень полезен. В частности, с его помощью можно узнать, какие элементы списка или, скажем, какие символы в строке встречаются чаще всего, и сколько раз. Три наиболее часто встречающихся буквы в строке helloworld — l (3 раза), o (2 раза) и e (1 раз). from collections import Counter mycounter = Counter() mycounter.items() # dict_items([]) mycounter = Counter({'one': 1, 'many': 10}) mycounter.items() # dict_items([('one', 1), ('many', 10)]) mycounter = Counter('abca') mycounter.items() # dict_items([('a', 2), ('b', 1), ('c', 1)]) mycounter = Counter(['a', 'b', 'c', 'a']) mycounter.items() # dict_items([('a', 2), ('b', 1), ('c', 1)]) # дополнение счётчика mycounter['a'] += 1 mycounter.items() # dict_items([('a', 3), ('b', 1), ('c', 1)]) # все повторения элементы с ненулевым положительным

Итерируемые (перебираемые) объекты — это коллекция важных структур данных в Python. Например, к ним относятся такие встроенные типы, как строки, списки и словари.

Инструмент Counter из модуля collections очень полезен. В частности, с его помощью можно узнать, какие элементы списка или, скажем, какие символы в строке встречаются чаще всего, и сколько раз.

Три наиболее часто встречающихся буквы в строке helloworld — l (3 раза), o (2 раза) и e (1 раз).

from collections import Counter
mycounter = Counter()
mycounter.items()
# dict_items([])
mycounter = Counter({'one': 1, 'many': 10})
mycounter.items()
# dict_items([('one', 1), ('many', 10)])
mycounter = Counter('abca')
mycounter.items()
# dict_items([('a', 2), ('b', 1), ('c', 1)])
mycounter = Counter(['a', 'b', 'c', 'a'])
mycounter.items()
# dict_items([('a', 2), ('b', 1), ('c', 1)])
# дополнение счётчика
mycounter['a'] += 1
mycounter.items()
# dict_items([('a', 3), ('b', 1), ('c', 1)])
# все повторения элементы с ненулевым положительным количеством
list(mycounter.elements())
# ['a', 'a', 'a', 'b', 'c']
# самые встречаемые 2 элемента
mycounter.most_common(2)
# [('a', 3), ('b', 1)]
# вычитание из счётчика
mycounter.subtract({'a': 1})
mycounter.items()
# dict_items([('a', 2), ('b', 1), ('c', 1)])
# удаление элемента
del mycounter['b']
mycounter.items()
# dict_items([('a', 2), ('c', 1)])

документация - https://pythonz.net/references/named/collections.counter/

Python RU