Питхон итер ()

Функција Питхон итер () враћа итератор за дати објекат.

iter()Функција креира објекат који се може поновљено једног елемента у датом тренутку.

Ови објекти су корисни у комбинацији са петљама попут фор лооп, вхиле лооп.

Синтакса iter()функције је:

 итер (објекат, сентинел)

итер () Параметри

iter()Функција узима два параметра:

  • објект - објекат чији итератор мора бити креиран (могу бити скупови, корице итд.)
  • сентинел (опционално) - посебна вредност која се користи за представљање краја низа

Врати вредност из итер ()

  • iter()Функција враћа итератор објекат за дати објекат.
  • Ако кориснички дефинисани објекат не имплементира __iter__(), __next__()или __getitem()__, TypeErrorподиже се изузетак.
  • Ако је обезбеђен и параметар сентинел, iter()враћа итератор све док знак сентинел не буде пронађен.

Пример 1: Рад Питхон итер-а ()

 # list of vowels vowels = ('a', 'e', 'i', 'o', 'u') vowels_iter = iter(vowels) print(next(vowels_iter)) # 'a' print(next(vowels_iter)) # 'e' print(next(vowels_iter)) # 'i' print(next(vowels_iter)) # 'o' print(next(vowels_iter)) # 'u'

Оутпут

 аеиоу 

Пример 2: итер () за прилагођене објекте

 class PrintNumber: def __init__(self, max): self.max = max def __iter__(self): self.num = 0 return self def __next__(self): if(self.num>= self.max): raise StopIteration self.num += 1 return self.num print_num = PrintNumber(3) print_num_iter = iter(print_num) print(next(print_num_iter)) # 1 print(next(print_num_iter)) # 2 print(next(print_num_iter)) # 3 # raises StopIteration print(next(print_num_iter))

Оутпут

 1 2 3 Трацебацк (последњи последњи позив): Датотека "", ред 23, у датотеци "", ред 11, у __нект__ СтопИтератион 

Пример 3: итер () са параметром сентинел

 class DoubleIt: def __init__(self): self.start = 1 def __iter__(self): return self def __next__(self): self.start *= 2 return self.start __call__ = __next__ my_iter = iter(DoubleIt(), 16) for x in my_iter: print(x) 

Оутпут

 2 4 8

Овде смо применили прилагођени итерабилни објекат без StopIterationуслова.

Међутим, iter()методу са sentinelпараметром можемо користити за заустављање итерације. Ако је вредност из које __next__()је враћено једнако sentinel, StopIterationбиће подигнута, у супротном, вредност ће бити враћена.

Препоручено читање: Питхон Итераторс

Занимљиви Чланци...