Python iter ()

Funcția Python iter () returnează un iterator pentru obiectul dat.

iter()Funcția creează un obiect care poate fi iterată un element la un moment dat.

Aceste obiecte sunt utile atunci când sunt cuplate cu bucle, cum ar fi pentru buclă, în timp ce buclă.

Sintaxa iter()funcției este:

 iter (obiect, santinelă)

iter () Parametri

iter()Funcția are doi parametri:

  • obiect - obiect al cărui iterator trebuie creat (pot fi seturi, tupluri etc.)
  • santinelă (opțional) - valoare specială care este utilizată pentru a reprezenta sfârșitul unei secvențe

Returnează valoarea din iter ()

  • iter()Functia returneaza un obiect iterator pentru obiectul dat.
  • Dacă obiectul definit de utilizator nu implementează __iter__()și __next__()sau __getitem()__, TypeErrorexcepția este ridicată.
  • Dacă este furnizat și parametrul santinelă, iter()returnează un iterator până când caracterul santinelă nu este găsit.

Exemplul 1: Lucrul Python iter ()

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

Ieșire

 aeiou 

Exemplul 2: iter () pentru obiecte personalizate

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

Ieșire

 1 2 3 Traceback (ultimul apel cel mai recent): Fișierul "", linia 23, în Fișierul "", linia 11, în __următorul__ StopIteration 

Exemplul 3: iter () cu parametru santinelă

 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) 

Ieșire

 2 4 8

Aici, am implementat un obiect iterabil personalizat fără o StopIterationcondiție.

Cu toate acestea, putem folosi iter()metoda cu sentinelparametrul pentru a opri iterația. Dacă valoarea returnată __next__()este egală cu sentinel, StopIterationva fi mărită, în caz contrar, valoarea va fi returnată.

Lectură recomandată: Iteratori Python

Articole interesante...