← Назад ко всем вопросам

Какие есть списковые генераторы?

1️⃣ Как кратко ответить

Списковые генераторы в Python — это синтаксический сахар для создания списков на основе существующих итерируемых объектов. Они позволяют компактно и эффективно создавать новые списки, применяя выражения и условия в одной строке.

2️⃣ Подробное объяснение темы

Основной синтаксис

Списковый генератор имеет следующий синтаксис:

new_list = [expression for item in iterable if condition]
  • expression — выражение, которое определяет, как будет выглядеть каждый элемент нового списка.
  • item — переменная, которая принимает значение каждого элемента из iterable.
  • iterable — итерируемый объект, из которого берутся элементы.
  • condition — необязательное условие, которое фильтрует элементы.

Пример без условия

Создание списка квадратов чисел от 0 до 9:

squares = [x**2 for x in range(10)]
  • range(10) создает итерируемый объект с числами от 0 до 9.
  • x**2 вычисляет квадрат каждого числа.
  • squares будет содержать [0, 1, 4, 9, 16, 25, 36, 49, 64, 81].

Пример с условием

Создание списка четных чисел от 0 до 9:

evens = [x for x in range(10) if x % 2 == 0]
  • x % 2 == 0 — условие, которое проверяет, является ли число четным.
  • evens будет содержать [0, 2, 4, 6, 8].

Применение нескольких циклов

Списковые генераторы также поддерживают вложенные циклы:

pairs = [(x, y) for x in range(3) for y in range(3)]
  • Два вложенных цикла for x in range(3) и for y in range(3) создают все возможные пары (x, y).
  • pairs будет содержать [(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)].

Тема: Python
Стадия: Tech

🔒 Подпишись на бусти автора и стань Алигатором, чтобы получить полный доступ к функционалу сайта и отслеживать свой прогресс!

Твои заметки