Модуль Collections в Python - это встроенный модуль, который предоставляет альтернативы встроенным типам, которые могут быть более эффективными, чем альтернативы. Модуль предоставляет альтернативы для различных встроенных типов, таких как списки, словари и множества.
В этой статье мы рассмотрим некоторые классы, предоставляемые модулем коллекций, и то, как они могут быть полезны в нашем повседневном программировании.
Первый класс, который мы рассмотрим, это `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) для операций append и pop. Вот пример:
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`. Это подкласс dict, который вызывает фабричную функцию для предоставления недостающих значений. Фабричная функция определяется при создании объекта defaultdict и вызывается каждый раз, когда запрашивается недостающий ключ.
Класс defaultdict - это подкласс встроенного класса dict, который предоставляет значение по умолчанию для всех новых ключей, к которым осуществляется доступ. Это может быть полезно, когда мы хотим инициализировать словарь со значением по умолчанию для всех ключей, или когда мы хотим избежать необходимости проверять существование ключа перед обращением к нему.
from collections import defaultdict d = defaultdict(int) d['a'] = 1 d['b'] = 2 print(d['c']) # Output: 0
Это лишь несколько примеров классов и методов, предоставляемых модулем коллекций в Python. С помощью этих инструментов мы можем легче работать с данными различными способами, делая наш код более эффективным и читабельным.
В заключение, модуль коллекции в python предоставляет полезные классы и методы, которые могут быть использованы для выполнения общих задач, связанных с данными, таких как подсчет, сохранение порядка, предоставление значения по умолчанию и т.д.
Надеюсь, вам понравился этот пост и вы узнали сегодня что-то новое:)