Python Iterators: Ce este Iterator în Python și cum se folosește?



În acest blog despre iteratorii Python, vom face un studiu aprofundat asupra Iteratorilor din Python și cum sunt implementate.

Limbajul de programare Python a scalat fiecare aspect al inovației, inclusiv , , , etc. Unul dintre numeroasele motive ale acestei fapte sunt concepte precum Python Iterators, concepte ca acestea sunt elementele de bază ale triumfului Python ca limbaj de programare. În acest articol, vom parcurge următoarele concepte pentru a înțelege Iteratorii Python:

Iteratori vs Iterabili

Un obiect din Python, care poate fi folosit ca obiect Iterabil, este numit Iterabil. Aceasta înseamnă practic că secvența din obiect poate fi repetată. Majoritatea colecțiilor Python ca un listă , , tuplu , seturi , și chiar gamă poate fi tratat ca un iterabil.





Ce sunt Iteratorii Python?

Un Python I terator este un container care conține un număr contabil de valori. Valorile dintr-un container pot fi parcurse folosind Iterators - în special liste.

În afară de traversare, Iteratorii oferă, de asemenea, acces la elementele de date dintr-un container, dar nu performează în sinerepetareadică nu fără o anumită libertate semnificativă luată cu acel concept sau cu utilizarea banală a terminologiei. Un Iterator este aproape similar cu uncursorul bazei de dateîn comportament. Iată un exemplu simplu de Iterator în .



my_obj = {'Edureka', 'Python', 'iterator'} iter_obj = iter (my_obj) print (next (iter_obj))

Ieșire: Edureka

Iterator este orice tip de Python care poate fi utilizat cu un „for in loop”.Orice obiect care urmează să fie folosit ca Iterator trebuie să implementeze următoarele metode.

iteratori în python - edureka



1. __iter __ ()

Se apelează la inițializarea unui Iterator.Ar trebui să returneze un obiect care are o metodă următoare sau __următoarea__.

2. __următorul __ ()

Următoarea metodă a Iteratorului returnează următoarea valoare pentru Iterabil.

Când un Iterator este utilizat cu o buclă „for in”, next () este implicit apelat de pe obiectul Iterator. Această metodă ar trebui să utilizeze un StopIteration pentru a semnaliza sfârșitul iterației.Împreună, aceste două metode se numesc Protocolul Iterator. Să încercăm să înțelegem cum o buclă for acționează ca un Iterator în Python cu un exemplu.

pentru i în obiect: print (i)

Să înțelegem cum funcționează bucla ca Iterator.

# creați un obiect iterator din acel iterabil iter_obj = iter (iterabil) # buclă infinită în timp ce True: încercați: # obțineți elementul următor element = next (iter_obj) # faceți ceva cu elementul cu excepția StopIteration: # dacă StopIteration este ridicat, rupeți-vă de buclă pauză

Acum, că știm, cum pentru bucla funcționează ca Iterator. Să înțelegem cum putem implementa Iteratori personalizați în Python.

Iteratori personalizați

Acum să aruncăm o privire asupra modului în care putem implementa Iteratori personalizați în Python. Pentru a înțelege acest lucru, vom folosi un exemplu. În acest exemplu, vom implementa metodele __iter __ () și __next __ ().

class MyNumbers: def __iter __ (self): self.a = 1 return self def __urmatoarea __ (self): x = self.a self.a + = 1 return x myclass = MyNumbers () myiter = iter (myclass) print (next ( myiter)) print (next (myiter)) print (next (myiter))

Ieșire: unu

2

3

Acum, că știm cum putem implementa Iteratori personalizați, haideți să aruncăm o privire la Iteratori infiniti în Python.

Iteratori infiniti

Nu este întotdeauna obligatoriu ca elementul dintr-un obiect Iterator să se epuizeze. Pot exista Iteratori infiniti (care nu se termină niciodată). Iată un exemplu de bază pentru a demonstra iteratori infiniti.

Încorporat iter ()poate fi apelat cu două argumente în care primul argument trebuie să fie un obiect (funcție) care poate fi apelat și al doilea este santinela. Iteratorul apelează această funcție până când valoarea returnată devine egală cu sentinela.

Să luăm un exemplu pentru a înțelege acest lucru

class MyNumbers: def __iter __ (self): self.a = 1 return self def __urmatoarea __ (self): x = self.a self.a + = 1 return x myclass = MyNumbers () myiter = iter (myclass) print (next ( myiter)) print (next (myiter)) print (next (myiter)) print (next (myiter)) print (next (myiter))

Ieșire: unu
2
3
4
5

În exemplul de mai sus, execuția va continua atâta timp cât continuăm să adăugăm declarația de tipărire. Pentru a opri Iteratorii infiniti, trebuie să folosim instrucțiunea stopIteration.

învățarea ssis pas cu pas

StopIteration

Pentru a opri o Iterare să se desfășoare pentru totdeauna, folosim declarația StopIteration Să înțelegem acest lucru cu câteva exemple.

class MyNumbers: def __iter __ (self): self.a = 1 return self def __urmatoarea __ (self): if self.a & ampampamplt = 5: x = self.a self.a + = 1 return x else: raise StopIteration myclass = MyNumbers () myiter = iter (myclass) pentru x în myiter: print (x)

Ieșire: unu
2
3
4
5

Acum, de îndată ce condiția este falsă, execuția se va muta la blocul else și iterația se va opri. Acum, să aruncăm o privire la câteva alte exemple de iteratoare în Python.

Exemple Python Iterator

Iată câteva exemple de Iteratori în Python.

my_obj = ['Edureka', 'python', 'iterator'] iter_obj = iter (my_obj) print (next (iter_obj))

Ieșire: Edureka

În acest exemplu, folosim tuplul ca obiect iterabil.

my_obj = ('Edureka', 'python', 'iterator') iter_obj = iter (my_obj) print (next (iter_obj))

Ieșire: Edureka

Putem folosi chiar șirul ca obiect iterabil în python.

my_obj = 'Edureka' iter_obj = iter (my_obj) print (next (iter_obj))

Ieșire: ESTE

Acest lucru ne duce la sfârșitul acestui articol, unde am aflat cum folosim Iteratorii Python cu exemple. Sper că ești clar cu tot ce ți-a fost împărtășit în acest tutorial.

Dacă ați găsit relevant acest articol despre „Python Iterators”, verificați o companie de învățare online de încredere, cu o rețea de peste 250.000 de elevi mulțumiți răspândiți pe tot globul.

Suntem aici pentru a vă ajuta cu fiecare pas din călătoria dvs. și pentru a veni cu un curriculum care este conceput pentru studenți și profesioniști care doresc să fie un . Cursul este conceput pentru a vă oferi un început avansat în programarea Python și vă va instrui atât pentru conceptele Python de bază, cât și pentru cele avansate, împreună cu diverse ca

Dacă întâmpinați orice întrebare, nu ezitați să vă adresați toate întrebările în secțiunea de comentarii din „Python Iterators”. Echipa noastră va răspunde cu plăcere.