List comprehension, вызывающий побочный эффект

На отдельных строках напечатаются числа 0–4, а b получит список [None, None, None, None, None], поскольку print возвращает None.

Короткий ответ

Что ответить на собеседовании

На отдельных строках напечатаются числа 0–4, а b получит список [None, None, None, None, None], поскольку print возвращает None.

Подробный разбор

Ответ с пояснениями

Условие

Что будет напечатано при запуске следующего кода:

b = [print(i) for i in range(5)]

Ответ

На отдельных строках напечатаются числа 0–4, а b получит список [None, None, None, None, None], поскольку print возвращает None.

Comprehension вычисляет выражение print(i) для каждого элемента range(5). Побочный эффект — вывод числа, а возвращаемое значение каждого вызова помещается в создаваемый список.

0
1
2
3
4

Сам b в показанном коде не печатается. Если нужен только вывод, понятнее обычный цикл:

for i in range(5):
    print(i)

Он не создаёт ненужный список результатов. Если же нужен список чисел, используйте b = list(range(5)), не смешивая формирование данных с печатью.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее