Структуры данных
Основные структуры данных в 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
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?