Встречается на собеседованиях • сегодня

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

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

Основные виды:

  1. Простой генератор
python
numbers = [x for x in range(10)]  # [0, 1, 2, ..., 9]
  1. С условием if
python
evens = [x for x in range(10) if x % 2 == 0]  # [0, 2, 4, 6, 8]
  1. С тернарным оператором
python
labels = ['even' if x % 2 == 0 else 'odd' for x in range(5)]  # ['even', 'odd', ...]
  1. Вложенные циклы
python
pairs = [(x, y) for x in [1, 2] for y in [3, 4]]  # [(1, 3), (1, 4), (2, 3), (2, 4)]
  1. Генератор с if-else перед циклом (Python 3.8+)
python
data = [y if (y := x + 1) > 2 else 0 for x in [1, 2, 3]]  # [0, 3, 4]

Альтернативы:

  • set/dict comprehensions: {x: x**2 for x in range(3)}
  • Генераторные выражения: (x**2 for x in range(3)) (ленивые вычисления).

⚠️ Избегайте слишком сложных генераторов — это ухудшает читаемость.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы