Перейти к содержанию

Списковые, словарные и множественные включения

Начало урока

Списковые, словарные и множественные включения

Соберите целую коллекцию в одной понятной строке

Главная идея: включение (comprehension) — это компактный синтаксис для построения списка, словаря или множества, где вы описываете что хотите получить, вместо того чтобы писать пошаговый цикл, добавляющий элементы в пустой контейнер. Читается как одно выражение: "возьми каждый элемент, преобразуй его и при желании оставь только те, что подходят".
К концу урока вы сможете:
  • свободно писать списковые, словарные и множественные включения,
  • добавлять фильтрацию с помощью завершающего if и выбирать значения условным выражением,
  • вкладывать циклы внутрь одного включения,
  • использовать множественное включение для удаления дубликатов, а словарное — для переназначения ключей и значений,
  • честно решать, когда включение помогает, а когда лучше обычный цикл или генератор.

1. От цикла к включению

Вы уже умеете строить список циклом: начать с пустого, пройтись и вызвать append. Допустим, вам нужны квадраты чисел от 0 до 4.

squares = []
for n in range(5):
    squares.append(n * n)
print(squares)

Вывод:

[0, 1, 4, 9, 16]

Списковое включение выражает тот же самый замысел в одну строку. Три подвижные части цикла — выражение-результат, переменная цикла и итерируемый объект — выстраиваются слева направо:

squares = [n * n for n in range(5)]
print(squares)   # [0, 1, 4, 9, 16]

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

Продолжите этот урок на YourAIZone

В полном уроке — объяснение целиком, разобранные примеры, частые ошибки, тесты с мгновенной проверкой и ИИ-репетитор. Начните сразу как гость или создайте аккаунт, чтобы сохранять прогресс.

В полном уроке

  • Объяснение целиком
  • Разобранные примеры
  • Частые ошибки и как их избежать
  • Тестовые вопросы: 15
  • ИИ-репетитор, который отвечает на вопросы по теме
  • Отслеживание прогресса для ученика, родителей и учителя