15 подписчиков

Класс Counter() модуля collections в Python.

Доброго времени суток всем читателям Яндекс.Дзен! В этой статье рассмотрим полезный и интересный счётчик в языке программирования Python. Он позволяет подсчитать количество повторений элементов в последовательности.

Это встроенный модуль в Python, поэтому устанавливать его не нужно.

Сразу приступим к импортированию класса counter()

from collections import Counter

Импортируем только этот класс из модуля collections, так как будем рассматривать только счётчик.

Синтаксис:
c = Counter([итерируемая последовательность или словарь])

А возвращаемое значение: объект Counter

В переменной c мы получаем коллекцию, в которой элементы хранятся в виде ключей как в словаре, а счётчик каждого элемента в виде значений этих элементов.

Пример

counter/test.py
counter/test.py

В данном примере с помощью Counter() я посчитал количество одинаковых элементов в списке и они по умолчанию отсортировались по частоте повторений.

Атрибуты и методы:

Теперь на полученном результате рассмотрим атрибуты и методы

Counter.elements()

возвращает итератор по элементам

counter/test.py
counter/test.py

так мы можем получить тот же только уже отсортированный список.

Это можно использовать если в счётчике сразу указать количество повторений определённого элемента

counter/test.py
counter/test.py

Если указать отрицательное количество элементов, то метод его просто проигнорирует.

Counter.most_common([n])

возвращает список из n наиболее распространённых элементов и их количество отсортированных по количество повторений.

Если n не указано, то метод просто возвращает все элементы в счетчике

counter/test.py
counter/test.py

Counter.subtract([итерируемая последовательность или словарь])

вычитает значение элементов из текущего счетчика и итерируемой последовательности или словаря, или другого счётчика

counter/test.py
counter/test.py

Counter.total()

Появился в Python 3.10, он вычисляет сумму значений счётчика.

counter/test.py
counter/test.py

В более ранних версиях Python этот метод можно заменить таким выражением

counter/test.py
counter/test.py

Counter.update([итерируемая последовательность или словарь])

Обычный метод словарей, который доступен и для счетчиков. Он складывает элементы текущего счетчика и итерируемой последовательности или словаря, или другого счётчика

counter/test.py
counter/test.py

Заключение

Этот класс Counter() может применяться во многих ситуациях и может очень упростить разработку программы, например недавно я его использовал для анализа данных, так как в одном столбце в каждой его строке встречались одинаковые элементы, но в разном количестве.
С помощью этого класса у меня получилось подсчитать количество каждого элемента.

На этом всё, спасибо за прочтение статьи, надеюсь она оказалась полезной, можете подписаться на канал и поставить лайк этой статье, не болейте!