Модуль collections
в Python предоставляет специализированные контейнеры-датаклассы, которые являются альтернативой стандартным контейнерам, таким как dict
, list
, set
, и tuple
. В этой статье мы рассмотрим основные компоненты модуля collections
и приведем примеры их использования.
namedtuple
namedtuple
— это фабрика для создания кортежей с именованными полями. Они позволяют создавать читаемые и самодокументируемые коды.
Пример использования namedtuple
:
from collections import namedtuple # Определение namedtuple Person = namedtuple("Person", ["name", "age", "city"]) # Создание объекта namedtuple person1 = Person("John", 30, "New York") # Доступ к полям namedtuple print(person1.name) # Output: John print(person1.age) # Output: 30 print(person1.city) # Output: New York
Counter
Counter
— это контейнер, который подсчитывает количество вхождений элементов. Он является подклассом словаря.
Пример использования Counter
:
from collections import Counter # Создание объекта Counter counter = Counter(["apple", "banana", "apple", "orange", "banana", "apple"]) # Вывод количества вхождений элементов print(counter) # Output: Counter({'apple': 3, 'banana': 2, 'orange': 1})
defaultdict
defaultdict
— это словарь, который возвращает значение по умолчанию для несуществующих ключей. Это удобно, когда нужно избежать ошибок KeyError при добавлении новых элементов.
Пример использования defaultdict
:
from collections import defaultdict # Создание объекта defaultdict words = defaultdict(int) # Добавление элементов и их подсчет for word in ["apple", "banana", "apple", "orange", "banana", "apple"]: words[word] += 1 print(words) # Output: defaultdict(<class 'int'>, {'apple': 3, 'banana': 2, 'orange': 1})
deque
deque
(двусторонняя очередь) — это контейнер с быстрым добавлением и удалением элементов с обеих сторон.
Пример использования deque
:
from collections import deque # Создание объекта deque queue = deque(["apple", "banana", "orange"]) # Добавление элемента в начало queue.appendleft("kiwi") print(queue) # Output: deque(['kiwi', 'apple', 'banana', 'orange']) # Удаление элемента с конца queue.pop() print(queue) # Output: deque(['kiwi', 'apple', 'banana'])
😉 Теперь вы знаете, как работать с модулем collections
в Python и можете использовать его в своих проектах для улучшения структуры данных и повышения производительности. Всегда рады помочь вам в изучении Python!
Добавить комментарий