Встречается на 1% собеседований по Python
Какие знаешь списковые генераторы
Списковые генераторы (list comprehensions) — это лаконичный способ создания списков в Python. Они позволяют заменять циклы for и условные конструкции if одной строкой.
Основные виды:
- Простой генератор
python
numbers = [x for x in range(10)] # [0, 1, 2, ..., 9]- С условием
if
python
evens = [x for x in range(10) if x % 2 == 0] # [0, 2, 4, 6, 8]- С тернарным оператором
python
labels = ['even' if x % 2 == 0 else 'odd' for x in range(5)] # ['even', 'odd', ...]- Вложенные циклы
python
pairs = [(x, y) for x in [1, 2] for y in [3, 4]] # [(1, 3), (1, 4), (2, 3), (2, 4)]- Генератор с
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/dictcomprehensions:{x: x**2 for x in range(3)}- Генераторные выражения:
(x**2 for x in range(3))(ленивые вычисления).
⚠️ Избегайте слишком сложных генераторов — это ухудшает читаемость.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
Похожие вопросы
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы