Вопрос на собеседовании · Python-разработчик

Чем генератор отличается от списка и когда он выигрывает?

Короткий ответ, ключевые тезисы и ошибки, которых стоит избежать на интервью.

Обновлено 25 сентября 2026 г.базовая тема
Python-разработчикПрофессии и разделы
Короткий ответ

Генератор вычисляет значения лениво: он выдаёт очередной элемент по запросу и сохраняет своё состояние между вызовами. Список, напротив, сразу материализует все элементы в памяти и позволяет обращаться к ним многократно и по индексу.

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

01 · Структура ответа

Что важно сказать интервьюеру

Раскройте тезисы, которые относятся именно к этому вопросу, и поясните их на собственном примере:

yield приостанавливает функцию и сохраняет локальное состояние.
Генератор реализует протокол итератора и выдаёт элементы по одному.
Ленивость уменьшает пиковое потребление памяти, но не гарантирует меньшего времени выполнения.
После исчерпания генератор нельзя начать заново без его повторного создания.

02 · Пример

Как объяснить на практике

При чтении многогигабайтного файла генератор может отдавать обработанные строки по одной. Это позволяет следующему этапу начинать работу сразу и не хранить весь файл в оперативной памяти.

Не заучивайте формулировку дословно. Свяжите принцип с задачей из собственного проекта — интервьюер почти наверняка попросит уточнить детали реализации и компромиссы.

03 · Ошибки

Чего избегать в ответе

Называть генератор всегда более быстрым, не измеряя накладные расходы.
Повторно обходить уже исчерпанный генератор и ожидать те же данные.
Скрывать внутри ленивого генератора ресурс, который может остаться открытым при раннем завершении обхода.

04 · Углубление

Что могут спросить следом

  1. Чем iterable отличается от iterator?
  2. Что делает yield from?
  3. Как корректно закрывается генератор?

05 · Проверка фактов

Первоисточники по теме

Ссылки ниже помогают проверить понятия, методы и ограничения по теме. Они не являются доказательством того, что этот вопрос задают на каждом собеседовании.

Практика ответа

Ответьте вслух, а не про себя

Откроем тренировку сразу на этом вопросе. Выберите грейд, сформулируйте ответ и сравните его с подсказкой.

Потренировать ответ