В языке Python есть два мощных инструмента, которые позволяют нам генерировать данные или выполнять итерации по коллекции элементов: генераторы и итераторы. Хотя в чем-то они похожи, у них есть явные различия, которые делают их подходящими для разных случаев использования. В этой статье мы рассмотрим концепции генераторов и итераторов в Python и то, как их можно эффективно использовать в вашем коде. Что такое генератор? Генератор - это особый тип функции, позволяющий создавать последовательность значений по одному, вместо того чтобы возвращать всю последовательность сразу...
Статья на Хабре Одним из главных достоинств Python является выразительность кода. Не последнюю роль в этом играет возможность удобной работы с коллекциями и последовательностями различного вида: перебор элементов списка по одному, чтение файла по строкам, обработка всех ключей и значений в словаре. Эти и многие другие подобные задачи в Python помогает решить так называемый протокол итераторов (Iterator protocol). Именно этот протокол обеспечивает работу цикла for, устанавливает по каким объектам можно итерироваться, а по каким нет...