Модуль коллекций в Python — это встроенный модуль, который предоставляет альтернативы встроенным типам, которые могут быть более эффективными, чем альтернативы. Модуль предоставляет альтернативы для множества встроенных типов, таких как списки, словари и наборы.
В этом сообщении блога мы рассмотрим некоторые классы, предоставляемые модулем collections, и то, как они могут быть полезны в нашем повседневном программировании.
именованный кортеж ()
Первый класс, который мы рассмотрим, это `namedtuple()`. Как следует из названия, это подкласс кортежа с именованными полями. Это может быть полезно, когда мы хотим дать более осмысленное имя элементам кортежа. Например, вместо доступа к элементам кортежа с помощью индексации мы можем получить к ним доступ по имени их поля. Вот пример:
from collections import namedtuple # Creating a namedtuple Person = namedtuple("Person", ["name", "age"]) # Creating an object of namedtuple p = Person("John", 32) # Accessing the fields using indexing print(p[0]) # Output: "John" print(p[1]) # Output: 32 # Accessing the fields using field name print(p.name) # Output: "John" print(p.age) # Output: 32
дека
Следующий класс, который мы рассмотрим, это `deque`. Это двусторонняя очередь, которую можно использовать как стек или очередь. Он реализован как двусвязный список и обеспечивает временную сложность O(1) для операций добавления и извлечения. Вот пример:
from collections import deque # Creating a deque d = deque() # Adding elements to the deque d.append(1) d.append(2) d.append(3) # Popping elements from the deque print(d.pop()) # Output: 3 print(d.pop()) # Output: 2 print(d.pop()) # Output: 1
Прилавок
Следующий класс, который мы рассмотрим, это `Counter`. Это подкласс dict, который используется для подсчета вхождений элементов в итерируемом объекте. Вот пример:
from collections import Counter # Creating a Counter c = Counter([1, 1, 2, 3, 4, 4, 4, 5]) # Printing the occurrences of each item print(c) # Output: Counter({4: 3, 1: 2, 2: 1, 3: 1, 5: 1})
defaultdict
Следующий класс, который мы рассмотрим, это `defaultdict`. Это подкласс dict, который вызывает фабричную функцию для предоставления отсутствующих значений. Фабричная функция определяется во время создания объекта defaultdict и вызывается каждый раз, когда запрашивается отсутствующий ключ.
Класс defaultdict
является подклассом встроенного класса dict
, который предоставляет значение по умолчанию для любых новых ключей, к которым осуществляется доступ. Это может быть полезно, когда мы хотим инициализировать словарь со значением по умолчанию для всех ключей или когда мы хотим избежать необходимости проверять существование ключа перед доступом к нему.
from collections import defaultdict d = defaultdict(int) d['a'] = 1 d['b'] = 2 print(d['c']) # Output: 0
Это всего лишь несколько примеров классов и методов, предоставляемых модулем collections в Python. С помощью этих инструментов мы можем легче работать с данными различными способами, делая наш код более эффективным и читабельным.
В заключение, модуль сбора в python предоставляет полезные классы и методы, которые можно использовать для выполнения общих задач, связанных с данными, таких как подсчет, сохранение порядка, предоставление значения по умолчанию и т. д.
Надеюсь, вам понравился этот пост и вы узнали что-то новое сегодня :)