Итераторы Python: что такое итератор в Python и как его использовать?



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

Язык программирования Python масштабировал каждый аспект инноваций, включая , , и т. д. Одной из многих причин этого подвига являются такие концепции, как Python Iterators, такие концепции, которые являются строительными блоками триумфа Python как языка программирования. В этой статье мы рассмотрим следующие концепции, чтобы понять итераторы Python:

Итераторы против Iterable

Объект в Python, который можно использовать как объект Iterable, называется Iterable. Это в основном означает, что последовательность в объекте может повторяться. Большинство коллекций Python, таких как список , , кортеж , наборы , и даже ассортимент можно рассматривать как Iterable.





Что такое итераторы Python?

Питон I тератор - это контейнер, содержащий счетное количество значений. Значения в контейнере можно перемещать с помощью итераторов, особенно списков.

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



my_obj = {'Эдурека', 'Python', 'итератор'} iter_obj = iter (my_obj) print (next (iter_obj))

Вывод: Эдурека

Итератор - это любой тип Python, который можно использовать с циклом for in.Любой объект, который будет использоваться в качестве итератора, должен реализовывать следующие методы.

итераторы в python - edureka



1. __iter __ ()

Он вызывается при инициализации итератора.Он должен возвращать объект, у которого есть метод next или __next__.

2. __next __ ()

Метод next Iterator возвращает следующее значение для Iterable.

Когда Iterator используется с циклом for in, next () неявно вызывается на объекте Iterator. Этот метод должен использовать StopIteration, чтобы сигнализировать об окончании итерации.Вместе эти два метода называются протоколом итератора. Давайте попробуем понять, как цикл for действует как итератор в Python на примере.

для i в объекте: print (i)

Давайте разберемся, как цикл for работает как итератор.

# создать объект-итератор из этого итеративного iter_obj = iter (iterable) # бесконечный цикл while True: try: # получить следующий элемент element = next (iter_obj) # сделать что-нибудь с element, кроме StopIteration: # если StopIteration поднят, выйти из цикла перерыв

Теперь, когда мы знаем, как для цикла работает как Итератор. Давайте разберемся, как мы можем реализовать собственные итераторы в Python.

Пользовательские итераторы

Теперь давайте посмотрим, как мы можем реализовать собственные итераторы в Python. Чтобы понять это, воспользуемся примером. В этом примере мы реализуем методы __iter __ () и __next __ ().

class MyNumbers: def __iter __ (self): self.a = 1 return self def __next __ (self): x = self.a self.a + = 1 return x myclass = MyNumbers () myiter = iter (myclass) print (next ( myiter)) print (следующий (myiter)) print (next (myiter))

Вывод: один

2

3

Теперь, когда мы знаем, как реализовать собственные итераторы, давайте взглянем на бесконечные итераторы в Python.

Бесконечные итераторы

Не всегда обязательно, чтобы элемент в объекте Iterator был исчерпан. Итераторов может быть бесконечное количество (которые никогда не заканчиваются). Вот базовый пример, демонстрирующий бесконечные итераторы.

Встроенный iter ()может быть вызван с двумя аргументами, где первый аргумент должен быть объектом (функцией), который может быть вызван, а второй - дозорным. Итератор вызывает эту функцию до тех пор, пока возвращаемое значение не станет равным сигнальному значению.

Давайте рассмотрим пример, чтобы понять это

class MyNumbers: def __iter __ (self): self.a = 1 return self def __next __ (self): x = self.a self.a + = 1 return x myclass = MyNumbers () myiter = iter (myclass) print (next ( myiter)) print (next (myiter)) print (next (myiter)) print (next (myiter)) print (next (myiter))

Вывод: один
2
3
4
5

В приведенном выше примере выполнение будет продолжаться, пока мы продолжаем добавлять оператор печати. Чтобы остановить бесконечные итераторы, нам нужно использовать оператор stopIteration.

применение аналитики больших данных

StopIteration

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

class MyNumbers: def __iter __ (self): self.a = 1 return self def __next __ (self): if self.a & ampampamplt = 5: x = self.a self.a + = 1 return x else: поднять StopIteration myclass = MyNumbers () myiter = iter (myclass) для x в myiter: print (x)

Вывод: один
2
3
4
5

Теперь, как только условие ложно, выполнение перейдет в блок else, и итерация остановится. Теперь давайте взглянем на несколько других примеров итераторов в Python.

Примеры итераторов Python

Вот еще несколько примеров итераторов в Python.

my_obj = ['Edureka', 'python', 'итератор'] iter_obj = iter (my_obj) print (next (iter_obj))

Вывод: Эдурека

В этом примере мы используем кортеж в качестве итерируемого объекта.

my_obj = ('Edureka', 'python', 'итератор') iter_obj = iter (my_obj) print (next (iter_obj))

Вывод: Эдурека

Мы даже можем использовать строку как повторяемый объект в Python.

my_obj = 'Эдурека' iter_obj = iter (my_obj) print (следующий (iter_obj))

Вывод: ЯВЛЯЕТСЯ

Это подводит нас к концу этой статьи, где мы узнали, как мы используем итераторы Python с примерами. Я надеюсь, что вы понимаете все, о чем вам рассказали в этом руководстве.

Если вы нашли эту статью «Итераторы Python» релевантной, ознакомьтесь с надежная компания онлайн-обучения с сетью из более чем 250 000 довольных учащихся по всему миру.

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

Если у вас возникнут какие-либо вопросы, не стесняйтесь задавать все свои вопросы в разделе комментариев «Итераторы Python». Наша команда будет рада ответить.