Расскажите про генераторы и итераторы.

Итератор выдаёт элементы через __next__ и завершается StopIteration; iterable создаёт итератор через __iter__. Генератор — удобная реализация итератора с сохранением состояния через yield.

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

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

Итератор выдаёт элементы через next и завершается StopIteration; iterable создаёт итератор через iter. Генератор — удобная реализация итератора с сохранением состояния через yield.

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

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

Итератор выдаёт элементы через next и завершается StopIteration; iterable создаёт итератор через iter. Генератор — удобная реализация итератора с сохранением состояния через yield.

Список — повторно обходимый iterable, а объект генератора обычно одноразовый. Генераторная функция возвращает объект без выполнения всего тела сразу; выполнение продолжается при запросе следующего элемента. Ленивость экономит память, но переносит момент ошибок и требует аккуратного закрытия ресурсов при раннем выходе.

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

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

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

Подробнее