Итератор – это элемент, содержащий подсчитываемое количество качеств.

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

Технически на Python итератором является объект, реализующий протокол итератора, состоящий из методов __iter__() и __next__().

итератор против итератора

Записи, кортежи, ссылки на слова и наборы по большей части являются итерабельными элементами. Это итераторы, из которых можно получить итератор.

Каждый из этих элементов имеет технику iter(), которая используется для получения итератора:

Пример

Верните итератор из кортежа и распечатайте каждое значение:

митупл = (“яблоко”, “банан”, “вишня”)
myit = iter(mytuple)

print(next(myit)))
 print(next(myit))
 print(next(myit)))

Даже строки являются итерабельными объектами и могут возвращать итератор:

Пример

Строки также являются итерабельными объектами, содержащими последовательность символов:

мистер = “банан”
myit = iter(mystr)

print(next(myit)))
print(next(myit))print(
next(myit))print(next
(myit))print(next(myit))print(
next(myit))print(
next(myit)))

Петля через итератор

Мы также можем использовать цикл for для итерации через итерабельный объект:

Пример

Итерация значений кортежа:

митупл = (“яблоко”, “банан”, “вишня”)

для x в mytuple:
 print(x)

Сделай итератора

Для того, чтобы сделать элемент/класс итератором, необходимо выполнить техники __iter__() и __next__() к статье.

Как Вы узнали в части Python Classes/Items, все классы имеют емкость __init__(), которая позволяет Вам сделать некоторые вводы во время написания статьи.

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

Техника __next__() дополнительно позволяет выполнять действия и должна восстанавливать следующее в группировке.

Пример

Создайте итератор, который возвращает числа, начинающиеся с 1, и каждая последовательность увеличится на единицу (возвращает 1,2,3,4,5 и т.д.):

класс MyNumbers: def __iter__(self): self.a = 1
 возвращает self
  Def __next__(self):
 x = self.a self.a += 1
 возвращаемый x

myclass = MyNumbers()
myiter = iter(myclass)

print(next(myiter))
print(next(myiter))
print(next(myiter)))


print(next(myiter))
print(next(myiter)))

СтопИтерация

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

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

В метод __next__() можно добавить условие завершения, чтобы поднять ошибку, если итерация выполняется указанное количество раз:

Пример

Остановитесь после 20 итераций:

класс MyNumbers: def __iter__(self): self.a = 1
 возвращает self
  def __next__(self):
 если self.a <= 20:
 x = self.a self.a += 1
 return x
 else:
 поднимаем StopIteration

myclass = MyNumbers()
myiter = iter(myclass)

для х в миитере:
 печать(х)