Добавить в корзинуПозвонить
Найти в Дзене
Self Study

Используем Counter для вычисления самого распространенного элемента коллекции

Введение Counter - это класс из модуля collections стандартной библиотеки Python, являющийся подклассом dict и используемый для подсчета неизменяемых (hashable) объектов, например строк или чисел [1, 2, 3]. Класс Counter реализует тип "мультимножество", который допускает неоднократное появление элемента в множестве. Это означает, что вы не только можете определить, принадлежит ли элемент множеству, но и узнать, сколько раз он был включен в него [4]. Импорт Для использования данного класса, импортируем его обычным способом: from collections import Counter И посмотрим как можно создать объект Counter Объявление и инициализация Вот 5 примеров того, как можно создать объект Counter: И их вывод на консоль: Как видите, в каждом случае, Counter автоматически подсчитал сколько раз тот или иной элемент входит в него. Важно, также, отметить, что объект Counter имеет интерфейс словаря, за исключением того, что он возвращают 0 для отсутствующих элементов вместо вызова KeyError [1]: Теперь дав
Оглавление

Введение

Counter - это класс из модуля collections стандартной библиотеки Python, являющийся подклассом dict и используемый для подсчета неизменяемых (hashable) объектов, например строк или чисел [1, 2, 3].

Класс Counter реализует тип "мультимножество", который допускает неоднократное появление элемента в множестве. Это означает, что вы не только можете определить, принадлежит ли элемент множеству, но и узнать, сколько раз он был включен в него [4].

Импорт

Для использования данного класса, импортируем его обычным способом:

from collections import Counter

И посмотрим как можно создать объект Counter

Объявление и инициализация

Вот 5 примеров того, как можно создать объект Counter:

создание объекта Counter
создание объекта Counter

И их вывод на консоль:

вывод на консоль
вывод на консоль

Как видите, в каждом случае, Counter автоматически подсчитал сколько раз тот или иной элемент входит в него.

Важно, также, отметить, что объект Counter имеет интерфейс словаря, за исключением того, что он возвращают 0 для отсутствующих элементов вместо вызова KeyError [1]:

вывод отсутствующего элемента
вывод отсутствующего элемента

Теперь давайте рассмотрим несколько основных методов Counter.

Основные методы

1. elements

Данный метод возвращает итератор, который содержит элементы объекта Counter с учетом их количества (счетчика). Если количество элементов меньше единицы, этот элемент игнорируется [1].

метод elements
метод elements

2. most_common([n])

Данный метод, возвращает список из n наиболее распространенных элементов и их количество от самых распространенных к менее распространенным. Если n опущено или указано None, то метод возвращает все элементы в счетчике. Элементы с равным количеством упорядочены произвольно [1]:

метод most_common
метод most_common

Примечание

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

обращение к элементу
обращение к элементу

Как видите, довольно просто узнать количество вхождений для конкретного элемента.

Вывод

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

Спасибо всем, кто дочитал. Ставьте лайки, подписывайтесь и до новых встреч.

Источники

1. Стандартная библиотека Python

2. Pythonworld

3. Medium

4. Дэн Бейдер, "Чистый Python. Тонкости программирования для профи", С. 183 - 184.