Скрытые возможности collections.Counter

collections.Counter — это как швейцарский нож в Python. Вроде бы простой инструмент для подсчёта элементов, но на самом деле он умеет гораздо больше, чем кажется. Помимо стандартного использования для подсчёта, у Counter есть несколько крутых трюков, которые не так широко известны.

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

Одна из самых недооценённых фишек Counter — это возможность выполнять математические операции с подсчитанными данными. Ты можешь складывать и вычитать счётчики, находить пересечения и объединять их, как будто работаешь с числами, а не со словарями.

Представь себе, что у тебя есть два склада, и каждый хранит разные товары. Ты хочешь посчитать общее количество товаров, объединить запасы или узнать, где какой товар в дефиците. Вместо громоздких циклов и условий можно воспользоваться магией Counter.

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

Кроме математических операций, Counter предоставляет и другие полезные методы:

  • most_common(n) — возвращает список из n самых распространённых элементов.
  • subtract() — вычитает элементы, как если бы это был список, а не просто числа.

Использование Counter особенно полезно, когда нужно работать с большими наборами данных, в которых важно не только подсчитывать, но и быстро сравнивать результаты. Это может быть полезно в задачах анализа данных, например, когда нужно сравнить статистику по разным временным периодам или по разным категориям.

Скрытые возможности collections.Counter | Сетка — новая социальная сеть от hh.ru
repost

156

input message

напишите коммент

· 28.09

А разве списки в Python вычитать можно?

ответить

еще контент автора

еще контент автора

войдите, чтобы увидеть

и подписаться на интересных профи

в приложении больше возможностей

пока в веб-версии есть не всё — мы вовсю работаем над ней

сетка — cоциальная сеть для нетворкинга от hh.ru

пересекайтесь с теми, кто повлияет на ваш профессиональный путь