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

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

1. list — список

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

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

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

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

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

2. tuple — кортеж

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

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

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

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

coords = (10, 20)

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

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

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

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

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

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


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

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

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


5. dict — словарь

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

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

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


6. str — строка

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

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

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


Дополнительно из модуля 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?