Вопросы к Поиску с Алисой
Работа iter() и генератора в Python отличается:
iter() создаёт итератор из вызываемого объекта (функция или класс с реализованным методом call). habr.com Первый аргумент должен быть вызываемым объектом, а второй — неким ограничителем. habr.com Вызываемый объект вызывается на каждой итерации, итерирование завершается, когда возбуждается исключение StopIteration или возвращается значение ограничителя. habr.com
Генератор — это языковая конструкция, которую можно реализовать двумя способами: как функцию с ключевым словом yield или как генераторное выражение. habr.com В результате вызова функции или вычисления выражения получается объект-генератор, который реализует интерфейс итератора. habr.com
Таким образом, итератор — это механизм поэлементного обхода данных, а генератор позволяет отложено создавать результат при итерации. habr.com Он помогает сэкономить оперативную память при переборе больших (и даже бесконечных) последовательностей. senjun.ru