Python Iteratorji: Kaj je Iterator v Pythonu in kako ga uporabljati?



V tem blogu o iteratorjih Python bomo izvedli poglobljeno študijo o iteratorjih v Pythonu in o tem, kako se izvajajo.

Programski jezik Python je prilagodil vse vidike inovacij, vključno , , itd. Eden od mnogih razlogov za ta podvig so koncepti, kot so Python Iterators, ki so gradniki Pythonove zmage kot programskega jezika. V tem članku bomo razumeli naslednje koncepte za razumevanje Python Iterators:

Iteratorji vs Iterable

Predmet v Pythonu, ki ga lahko uporabimo kot iterable objekt, se imenuje Iterable. To v bistvu pomeni, da je zaporedje v predmetu mogoče ponoviti. Večina zbirk Python, kot je seznam , , tuple , kompleti , in celo obseg lahko obravnavajo kot Iterable.





Kaj so Python Iteratorji?

Python I terator je vsebnik, ki vsebuje prešteto število vrednosti. Vrednosti v vsebniku je mogoče prehoditi z uporabo iteratorjev - zlasti seznamov.

Iteratorji poleg prečkanja omogočajo tudi dostop do podatkovnih elementov v vsebniku, vendar sam ne delujeponovitevtorej ne brez neke pomembne svobode, sprejete s tem konceptom ali s trivialno uporabo terminologije. Iterator je skoraj podoben akazalec baze podatkovv vedenju. Tu je preprost primer Iteratorja v .



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

Izhod: Edureka

Iterator je katera koli vrsta Pythona, ki jo lahko uporabljate z zanko 'for in'.Vsak objekt, ki se uporablja kot iterator, mora izvajati naslednje metode.

iteratorji v python - edureka



1. __iter __ ()

Pokliče se ob inicializaciji Iteratorja.Vrniti bi moral objekt, ki ima naslednjo ali __next__ metodo.

2. __naprej __ ()

Naslednja metoda Iteratorja vrne naslednjo vrednost za Iterable.

Ko se Iterator uporablja z zanko 'for in', implicitno pokliče next () na objektu Iterator. Ta metoda mora uporabiti StopIteration, ki označuje konec ponovitve.Ti dve metodi se skupaj imenujeta protokol Iterator. Poskusimo s primerom razumeti, kako zanka for deluje kot iterator v Pythonu.

za i v objektu: print (i)

Dovolite nam, da razumemo, kako for zanka deluje kot Iterator.

# ustvarite iterator objekt iz tega iterable iter_obj = iter (iterable) # neskončno zanko, medtem ko je True: poskusite: # dobite naslednji element element = next (iter_obj) # naredite nekaj z elementom, razen StopIteration: # če je StopIteration dvignjen, prekinite iz zanke odmor

Zdaj, ko vemo, kako za zanko deluje kot Iterator. Dovolite nam, kako lahko v Pythonu uporabimo Iteratorje po meri.

Iteratorji po meri

Zdaj pa si oglejmo, kako lahko v Pythonu uporabimo Iteratorje po meri. Da bi to razumeli, bomo uporabili primer. V tem primeru bomo implementirali metodi __iter __ () in __next __ ().

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

Izhod: eno

2.

3.

Zdaj, ko vemo, kako lahko uporabimo Iteratorje po meri, si oglejmo neskončne iteratorje v Pythonu.

Neskončni ponovitelji

Ni vedno obvezno, da mora element v predmetu Iterator izčrpati. Iteratorji so lahko neskončni (kar se nikoli ne konča). Tu je osnovni primer za prikaz neskončnih iteratorjev.

Vgrajena iter ()se lahko pokliče z dvema argumentoma, pri čemer mora biti prvi argument predmet (funkcija), ki ga je mogoče poklicati, drugi pa je stražnik. Iterator pokliče to funkcijo, dokler vrnjena vrednost ne postane enaka sentinelu.

Vzemimo primer, da to razumemo

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

Izhod: eno
2.
3.
4.
5.

V zgornjem primeru se bo izvajanje izvajalo, dokler bomo še naprej dodajali izjavo za tiskanje. Če želimo ustaviti neskončne iteratorje, moramo uporabiti stavek stopIteration.

kako uporabiti iterator v javi -

StopIteration

Če želimo, da ponovitev ne bi trajala večno, uporabimo izjavo StopIteration. Razumimo to z nekaj primeri.

class MyNumbers: def __iter __ (self): self.a = 1 return self def __next __ (self): if self.a & ampampamplt = 5: x = self.a self.a + = 1 return x else: dvig StopIteration myclass = MyNumbers () myiter = iter (myclass) za x v myiter: print (x)

Izhod: eno
2.
3.
4.
5.

Zdaj, ko je Pogoj je false, izvedba se premakne v blok else in ponovitev se ustavi. Zdaj pa si oglejmo nekaj drugih primerov iteratorjev v Pythonu.

Primeri Python Iteratorja

Tu je še nekaj primerov iteratorjev v Pythonu.

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

Izhod: Edureka

V tem primeru uporabljamo korito kot iterable objekt.

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

Izhod: Edureka

Niz lahko celo uporabimo kot iterable objekt v pythonu.

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

Izhod: JE

To nas pripelje do konca tega članka, kjer smo izvedeli, kako s primeri uporabljamo Python Iteratorje. Upam, da vam je jasno vse, kar je bilo v tej vadnici z vami deljeno.

Če se vam zdi članek o »Python Iteratorjih« ustrezen, si oglejte zaupanja vredno podjetje za spletno učenje z mrežo več kot 250.000 zadovoljnih učencev, razširjenih po vsem svetu.

Tu smo, da vam pomagamo pri vsakem koraku na poti in pripravimo učni načrt, ki je zasnovan za študente in strokovnjake, ki želijo biti . Tečaj je zasnovan tako, da vam omogoči uvod v programiranje Python in vas usposobi za osnovne in napredne koncepte Pythona ter različne všeč

Če naletite na kakršna koli vprašanja, vas prosimo, da vsa vprašanja postavite v oddelku za komentarje v 'Python Iterators'. Naša ekipa bo z veseljem odgovorila.