Модуль collections — это модуль стандартной библиотеки Python, который предоставляет специализированные типы контейнеров как альтернативу встроенным контейнерам Python, таким как dict, list и tuple. Эти типы разработаны для более эффективной работы с конкретными случаями использования и написания более чистого кода.
Counter — считает количество вхождений хешируемых объектов, возвращая словарь пар элемент-частотаdefaultdict — подкласс словаря, который возвращает значение по умолчанию вместо выброса KeyError для отсутствующих ключейOrderedDict — словарь, который запоминает порядок вставки (менее критично с Python 3.7+, но всё ещё полезно для операций переупорядочивания)deque — двусторонняя очередь, оптимизированная для быстрого добавления и удаления с обоих концов, в отличие от обычных списковnamedtuple — создаёт подклассы кортежей с именованными полями, улучшая читаемость кода без накладных расходовChainMap — объединяет несколько словарей в единое логическое представление, полезно для управления многоуровневыми конфигурациями или областями видимостиfrom collections import Counter
words = ["apple", "banana", "apple", "cherry"]
count = Counter(words)
# Counter({'apple': 2, 'banana': 1, 'cherry': 1})
Использование collections приводит к более читаемому, эффективному и идиоматичному коду благодаря замене самописных реализаций на специально разработанные инструменты. Например, defaultdict избавляет от необходимости проверок через setdefault(), а deque превосходит списки по производительности при частых вставках или удалениях с обоих концов.
defaultdict вызывает KeyError при обращении к отсутствующему ключу, точно как обычный словарь, но позволяет указать функцию-фабрику для значения по умолчанию.
Новый — ещё не проверен сообществом
Вы