Список, кортеж, множество или словарь: выбор структуры Python

← Все подборки материалов

Разработка · 4 материала

Выбирайте структуру Python по необходимой операции: список хранит изменяемую последовательность с повторами, кортеж — последовательность без изменения её состава, множество — уникальные элементы, словарь — значения по ключам. Начинайте с требований к данным, а не с внешнего вида скобок. Одна задача может использовать несколько структур на разных этапах.

4 материала по задачеПерейти к инструкциям ↓
В этой подборке

Материалы подборки

Выберите инструкцию под свою задачу. Ниже — подробный разбор выбора и проверки результата.

02 / 4 материала

Наборы (sets) в Python

уникальность, объединение и другие операции над наборами. Начинайте здесь, если задача связана с принадлежностью элемента или пересечением наборов.

Читать материал

Для каждого перехода между структурами выпишите, какая информация перестаёт храниться. Так упражнение превращается из запоминания методов в проверку модели данных. Если потерянные свойства нужны следующему шагу, сохраните исходный вариант или выберите другую структуру для этого этапа.

Матрица выбора

Требование Структура Учебный пример
Сохранять порядок и повторения, менять состав Список Последовательность поступивших заявок
Хранить фиксированный набор позиций Кортеж Пара координат
Получить уникальные элементы Множество Набор встреченных категорий
Получать значение по именованному ключу Словарь Поля карточки товара

Изменяемость и уникальность отвечают на разные вопросы. Кортеж не запрещает повторяющиеся значения; множество не хранит выбранный вами порядок последовательности. Словарь связывает ключи со значениями, но не становится от этого автоматически отсортированным по значению. Поэтому сначала выпишите свойства, которые действительно должны сохраняться.

Представьте список посещений: одна категория может встретиться несколько раз. Для подсчёта посещений повторы существенны, а для перечня категорий — нет. Преобразование в множество меняет смысл данных, а не только способ хранения. Сделайте такое преобразование только после решения, нужна ли информация о количестве повторов.

Проверьте выбор на операциях

Возьмите пять тестовых записей, среди которых есть повторы. Опишите три действия: добавить ещё одну, найти нужную и подготовить вывод. Для каждой выбранной структуры посмотрите, можно ли выполнить действие без потери важных свойств. Если приходится постоянно восстанавливать утраченный порядок, возможно, множество выбрано слишком рано.

Для словаря сначала определите смысл ключа. Если два объекта могут иметь одинаковое имя, такое имя не всегда подходит для различения записей. В учебном примере используйте отдельный идентификатор и проверьте повторное присваивание по тому же ключу. Так станет заметно различие между новой записью и заменой значения существующей.

Неизменяемость кортежа касается его позиций, но не превращает вложенные изменяемые объекты в неизменяемые. Для первых упражнений используйте простые значения и не считайте кортеж универсальным способом защиты сложной структуры. Проверяйте именно то поведение, на которое опирается программа.

Критерии готового решения

  1. Порядок сохраняется там, где он нужен.
  2. Повторы удаляются только по явному требованию.
  3. Ключ действительно различает записи.
  4. Изменения происходят ожидаемым способом.
  5. Форма вывода не подменяет структуру хранения.

Удачный выбор легко объяснить одной фразой: «мне нужна эта операция и эти свойства». Если объяснение начинается только со знакомого синтаксиса, повторите упражнение на тех же данных с другой структурой и сравните потерянные либо сохранённые свойства.