Итераторы можно применять вместо последовательности в операторе for. Более того,внутренне оператор for запрашивает от последовательности ее итератор. Объект 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Итераторы можно применять вместо последовательности в операторе for. Более того,внутренне оператор for запрашивает от последовательности ее итератор. Объект

Поиск

Итераторы можно применять вместо последовательности в операторе for.Более того,внутренне оператор for запрашивает от последовательности ее итератор.Объект

 

файлового типа тоже(построчный)итератор,что позволяет обрабатывать большие файлы,не считывая их целиком в память.

 

Там,где требуется итератор,можно использовать последовательность.

 

Работа с итераторами рассматривается в разделе,посвященном функциональному программированию,так как итераторами удобно манипулировать именно в функциональном стиле.

 

Использовать итератор можно и"вручную".Любой объект,поддерживающий интерфейс итератора,имеет метод next(),который при каждом вызове выдает очередное значение

 

итератора.Если больше значений нет,возбуждается исключение StopIteration.Для

 

получения итератора по некоторому объекту необходимо прежде применить к этому объекту функцию iter()(цикл for делает этоавтоматически).

 

ВPythonимеется модуль itertools,который содержит набор функций,комбинируя

 

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

 

Функция iter()

 

Эта функция имеет два варианта использования.В первом она принимает всего один аргумент,который должен"уметь"предоставлять свой итератор.Во втором один из аргументов-функция без аргументов,другой-стоповое значение.Итератор вызывает указанную функцию до тех пор,пока та не возвратит стоповое значение.Второй вариант встречается много реже первого и обычно внутри метода класса,так как сложно порождать значения"на пустом месте":

 



Поделиться:


Последнее изменение этой страницы: 2024-06-27; просмотров: 56; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.128 (0.008 с.)