RUDE

Возможности встроенного модуля Collections в Python

CoderStudio, 29.01.2023 13:32
Возможности встроенного модуля Collections в Python
Изображение предоставлено @educba

Модуль Collections в Python - это встроенный модуль, который предоставляет альтернативы встроенным типам, которые могут быть более эффективными, чем альтернативы. Модуль предоставляет альтернативы для различных встроенных типов, таких как списки, словари и множества.

В этой статье мы рассмотрим некоторые классы, предоставляемые модулем коллекций, и то, как они могут быть полезны в нашем повседневном программировании.

Namedtuple()

Первый класс, который мы рассмотрим, это `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

Следующий класс, который мы рассмотрим, это `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

Следующий класс, который мы рассмотрим, это `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

В заключение, модуль коллекции в python предоставляет полезные классы и методы, которые могут быть использованы для выполнения общих задач, связанных с данными, таких как подсчет, сохранение порядка, предоставление значения по умолчанию и т.д.

Надеюсь, вам понравился этот пост и вы узнали сегодня что-то новое:)