0Pricing
Python Academy · Урок

Генераторы списков

Создавайте списки лаконично с помощью синтаксиса генераторов и условий.

«Генераторы списков» — бесплатный урок Python Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Python Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Python Academy содержит 4 уроков всего.

Введение

Списковые включения создают новые списки из итерируемых объектов с помощью одного понятного выражения, заменяя распространённые конструкции циклов for.

Базовый синтаксис

[expression for item in iterable] — основная форма. [x*2 for x in range(5)] даёт [0,2,4,6,8].
doubled = [x*2 for x in range(5)]
print(doubled)

С условием

[x for x in range(10) if x%2==0] отбирает чётные числа. Условие if записывается после части for.
evens = [x for x in range(10) if x % 2 == 0]
print(evens)

Преобразование строк

[word.upper() for word in words] применяет upper() к каждой строке. Это работает с любым итерируемым объектом.
words = ['hello', 'world']
print([w.upper() for w in words])

Вложенное включение

[x for row in matrix for x in row] — плоское вложенное включение (читается слева направо: сначала внешний цикл).
matrix = [[1,2,3],[4,5,6]]
flat = [x for row in matrix for x in row]
print(flat)

if/else в выражении

[x if x>0 else 0 for x in lst] использует тернарный оператор в части выражения (перед for), а не после неё.
lst = [-1, 2, -3, 4]
clipped = [x if x > 0 else 0 for x in lst]
print(clipped)

Включение и map/filter

[f(x) for x in it if cond(x)] эквивалентно list(map(f, filter(cond, it))), но читается понятнее.
nums = range(10)
result = [x**2 for x in nums if x%2==0]
print(result)

Уплощение с помощью включения

При двух и более уровнях вложенности включение может уплощать структуру: [[1,2],[3,4]] → [1,2,3,4].
nested = [[1,2],[3,4],[5]]
flat = [x for sub in nested for x in sub]
print(flat)

Включение с enumerate()

[(i, x) for i, x in enumerate(lst)] создаёт список пар «индекс — значение».
colors = ['red', 'green', 'blue']
indexed = [(i, c) for i, c in enumerate(colors)]
print(indexed)

Включение с zip()

[a+b for a, b in zip(lst1, lst2)] складывает соответствующие элементы двух списков.
a = [1, 2, 3]
b = [10, 20, 30]
print([x+y for x,y in zip(a,b)])

Когда не следует использовать включения

Если логика сложная или нужны побочные эффекты, используйте обычный цикл for. Включения должны оставаться однострочными.
# Too complex for comprehension:
result = []
for x in range(10):
    if x > 5:
        result.append(x * x)
print(result)

Быстрая проверка

Куда помещается тернарный оператор в списковом включении, содержащем и условие, и тернарный оператор?

Повторение

Списковые включения: [expr for x in it if cond]. Тернарный оператор в выражении: [x if cond else y for x in it]. Используйте их для простых и понятных преобразований.

Продолжайте обучение

Отлично! Перейдите к следующему уроку, чтобы углубить свои навыки.

Часто задаваемые вопросы

Урок «Генераторы списков» бесплатный?

Да — полный текст урока «Генераторы списков» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Python Academy, подпишись на CoddyKit PRO. Курс Python Academy содержит 4 уроков всего.

Чему я научусь в уроке «Генераторы списков»?

Создавайте списки лаконично с помощью синтаксиса генераторов и условий. Ты практикуешь Python Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Python Academy?

Предыдущий опыт не требуется. Python Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.

Сколько времени занимает урок «Генераторы списков»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Python Academy?

Да. Каждый урок Python Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Генераторы списков
  2. Генераторы множеств и словарей
  3. Генерирующие выражения
  4. Ключевое слово yield
← Назад к Python Academy