Pythoni iter ()

Funktsioon Python iter () tagastab antud objekti iteraatori.

iter()Funktsioon loob objekti, mida saab kordasid üks element korraga.

Need objektid on kasulikud, kui need on ühendatud tsüklitega nagu loop, samas loop.

Funktsiooni süntaks iter()on:

 iter (objekt, valvur)

iter () parameetrid

iter()Funktsiooni võtab kaks parameetrit:

  • objekt - objekt, mille iteraator tuleb luua (võib olla komplektid, hulgad jne)
  • sentinel (valikuline) - eriväärtus, mida kasutatakse jada lõpu tähistamiseks

Tagastage väärtus iterist ()

  • iter()Tagastab iteraatoris objekti antud objekti.
  • Kui kasutaja määratletud objekti ei rakendata __iter__()ja __next__()või __getitem()__, TypeErrortõstetakse erand.
  • Kui ka sentineli parameeter on esitatud, iter()tagastab iteraatori seni, kuni valvurimärki ei leita.

Näide 1: Pythoni iteri () töötamine

 # 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'

Väljund

 aeiou 

Näide 2: kohandatud objektide iter ()

 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))

Väljund

 1 2 3 Jälgimine (viimane kõne on viimane): fail "", faili "" rida 23, rida 11, __next__ StopIteration 

Näide 3: iter () koos sentinelli parameetriga

 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) 

Väljund

 2 4 8

Siin oleme juurutanud StopIterationtingimusteta kohandatud korduva objekti .

Kuid iteratsiooni peatamiseks saame kasutada parameetriga iter()meetodit sentinel. Kui väärtus, millest tagastatakse, __next__()on võrdne väärtusega sentinel, StopIterationtõuseb, vastasel juhul tagastatakse väärtus.

Soovitatav lugemine: Pythoni iteraatorid

Huvitavad Artiklid...