Python Development
Александр Вотин, Backend developer · 28.09
Скрытые возможности collections.Counter
collections.Counter — это как швейцарский нож в Python. Вроде бы простой инструмент для подсчёта элементов, но на самом деле он умеет гораздо больше, чем кажется. Помимо стандартного использования для подсчёта, у Counter есть несколько крутых трюков, которые не так широко известны.
Изначально Counter был создан для того, чтобы легко подсчитывать, сколько раз элемент встречается в коллекции. Например, если тебе нужно узнать, сколько раз каждое слово встречается в списке слов, Counter справляется с этим за пару строк.
Одна из самых недооценённых фишек Counter — это возможность выполнять математические операции с подсчитанными данными. Ты можешь складывать и вычитать счётчики, находить пересечения и объединять их, как будто работаешь с числами, а не со словарями.
Представь себе, что у тебя есть два склада, и каждый хранит разные товары. Ты хочешь посчитать общее количество товаров, объединить запасы или узнать, где какой товар в дефиците. Вместо громоздких циклов и условий можно воспользоваться магией Counter.
В примере на изображении мы легко сложили запасы двух складов и получили общее количество каждого товара. Но это не всё! С помощью тех же операций можно отнимать запасы одного склада от другого, находить общие товары (пересечения) или определять максимальные значения по каждому товару.
Кроме математических операций, Counter предоставляет и другие полезные методы:
- most_common(n) — возвращает список из n самых распространённых элементов.
- subtract() — вычитает элементы, как если бы это был список, а не просто числа.
Использование Counter особенно полезно, когда нужно работать с большими наборами данных, в которых важно не только подсчитывать, но и быстро сравнивать результаты. Это может быть полезно в задачах анализа данных, например, когда нужно сравнить статистику по разным временным периодам или по разным категориям.
Шамиль Алиакберов
· 28.09
А разве списки в Python вычитать можно?
ответить
еще контент автора
еще контент автора
Python Development
Александр Вотин, Backend developer · 28.09
войдите, чтобы увидеть
и подписаться на интересных профи