Структуры данных

Основные структуры данных в Python

1. list — список

  • Мутируемый (можно изменять элементы).

  • Упорядоченный.

  • Можно хранить разные типы данных.

  • Часто используется для хранения наборов тестовых данных, ответов API, элементов DOM и т. д.

tests = ["login", "payment", "logout"]
tests.append("profile")

2. tuple — кортеж

  • Иммутабельный (нельзя изменять после создания).

  • Упорядоченный.

  • Быстрее списка, подходит для константных наборов данных.

  • В тестах: часто используется как ключ в словарях или для фиксированных данных.

coords = (10, 20)

3. set — множество

  • Мутируемое.

  • Неупорядоченное.

  • Уникальные элементы.

  • Быстрые операции поиска и удаления.

  • В тестах: удобно сравнивать, что два набора данных совпадают (без учёта порядка).

tags = {"smoke", "regression", "api"}

4. frozenset — неизменяемое множество

  • То же, что set, но иммутабельное.

  • Можно использовать как ключ словаря.

immutable_tags = frozenset(["smoke", "api"])

5. dict — словарь

  • Мутируемый.

  • Пары ключ-значение.

  • В тестах: хранение конфигураций, JSON-ответов, маппингов.

config = {"url": "https://test.com", "timeout": 30}

6. str — строка

  • Иммутабельная.

  • Последовательность символов.

  • В тестах часто обрабатывается при парсинге логов, ответов API, HTML.

message = "Test passed"

Дополнительно из модуля collections

(очень часто спрашивают на Senior-позиции)

  • namedtuple — кортеж с именованными полями.

  • deque — двусторонняя очередь (эффективная вставка/удаление с обоих концов).

  • Counter — подсчёт элементов.

  • defaultdict — словарь с автоматическим созданием значений по умолчанию.

  • OrderedDict — словарь с сохранением порядка (в Python 3.7+ dict уже упорядочен).


Важные моменты для собеседования

  • Мутируемые vs иммутабельные: список и словарь можно менять, кортеж и строку — нет.

  • Время доступа: dict и set работают за O(1) в среднем.

  • Когда использовать:

    • list — когда нужен порядок и дубликаты.

    • set — когда нужны уникальные элементы.

    • dict — когда нужен доступ по ключу.

    • tuple — когда данные не должны меняться.

Last updated

Was this helpful?