</PKB>

Списочные выражения в Python

Списочные выражения (или list comprehensions) — это краткий и удобный способ создать список, используя цикл и, при необходимости, условие. Они позволяют записывать создание списков в одну строку, делая код чище и понятнее.

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

          [выражение for элемент in итерируемый_объект]

Пример — создать список квадратов чисел от 0 до 4:

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

С условием

Можно добавлять условие, чтобы включать только подходящие элементы:

          evens = [x for x in range(10) if x % 2 == 0]
          print(evens)  # [0, 2, 4, 6, 8]

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

Вместо длинных циклов можно использовать списочные выражения:

          # Обычный способ
          result = []
          for x in range(5):
              result.append(x + 1)
          
          # То же самое через list comprehension
          result = [x + 1 for x in range(5)]

Вложенные списочные выражения

Можно использовать вложенные циклы внутри выражения:

          pairs = [(x, y) for x in range(2) for y in range(2)]
          print(pairs)  # [(0, 0), (0, 1), (1, 0), (1, 1)]

Когда использовать?

Главное — не переборщить. Если выражение становится слишком сложным, лучше использовать обычный цикл for для понятности.