Памятка по коллекциям и структурам данных Python

Полное руководство по модулю коллекций Python и собственным структурам данных. Изучите списки, словари, наборы, кортежи, деки и именованные кортежи.

Собственные встроенные типы

Стандартные классы контейнеров изначально доступны без дополнительного импорта.

Метод/ФункцияСинтаксисОписание
Listmy_list = [1, 2, 3]Упорядоченная, изменяемая, индексируемая последовательность произвольных элементов.
Dictionarymy_dict = {"key": "val"}Сопоставление ключ-значение. Ключи должны быть уникальными и хешируемыми (неизменяемыми).
Setmy_set = {1, 2, 3}Неупорядоченная коллекция уникальных хешируемых элементов.
Tuplemy_tuple = (1, 2, 3)Упорядоченная, неизменяемая последовательность. Часто используется для типов данных записи.

Структуры модулей специализированных коллекций

Структуры, импортированные из коллекций для определенных характеристик производительности.

Метод/ФункцияСинтаксисОписание
dequefrom collections import dequeДвусторонняя очередь. Поддерживает быстрое добавление и извлечение O(1) с обоих концов.
defaultdictfrom collections import defaultdictПодкласс словаря, который вызывает фабричную функцию для предоставления пропущенных значений.
Counterfrom collections import CounterПодкласс словаря для подсчета хешируемых объектов.
namedtuplefrom collections import namedtupleФабричная функция для создания подклассов кортежей с именованными полями.
OrderedDictfrom collections import OrderedDictПодкласс словаря, запоминающий порядок вставки ключей.

Интерактивный демонстрационный сценарий

# List
my_list = [1, 2, 3]

# Dictionary
my_dict = {"key": "val"}

# Set
my_set = {1, 2, 3}

# Tuple
my_tuple = (1, 2, 3)

# deque
from collections import deque

# defaultdict
from collections import defaultdict

# Counter
from collections import Counter

# namedtuple
from collections import namedtuple

# OrderedDict
from collections import OrderedDict

Часто задаваемые вопросы

Когда мне следует использовать deque вместо списка?

Используйте deque (двустороннюю очередь), когда вам нужно быстрое O(1) добавление и извлечение с обоих концов. Списки имеют сложность O(n) для вставки/удаления спереди.

Как работает defaultdict?

defaultdict автоматически создает значение по умолчанию (например, list, int), если вы пытаетесь получить доступ к несуществующему ключу, предотвращая ошибки KeyError.

Связанные темы

Рекомендуемые ресурсы Python

Расширьте свои знания с помощью соответствующих интерактивных руководств, шпаргалок и сравнений кода.