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()__
,TypeError
tõ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 StopIteration
tingimusteta kohandatud korduva objekti .
Kuid iteratsiooni peatamiseks saame kasutada parameetriga iter()
meetodit sentinel
. Kui väärtus, millest tagastatakse, __next__()
on võrdne väärtusega sentinel
, StopIteration
tõuseb, vastasel juhul tagastatakse väärtus.
Soovitatav lugemine: Pythoni iteraatorid