Python Iterators: Što je Iterator u Pythonu i kako ga koristiti?



U ovom blogu o Python iteratorima, radit ćemo detaljnu studiju o Iteratorima u Pythonu i kako se oni primjenjuju.

Programski jezik Python skalirao je svaki aspekt inovacije, uključujući , , itd. Jedan od mnogih razloga ovog podviga su koncepti poput Python Iterators, koncepti poput njih su gradivni elementi Pythonovog trijumfa kao programskog jezika. U ovom ćemo članku proći kroz sljedeće koncepte kako bismo razumjeli Python Iterators:

Iteratori vs Iterable

Objekt u Pythonu koji se može koristiti kao Iterable objekt naziva se Iterable. To u osnovi znači da se slijed u objektu može ponoviti. Većina Python kolekcija poput popis , , korijen , setovi , pa čak i domet može se tretirati kao Iterable.





Što su Python Iteratori?

Piton I terator je spremnik koji sadrži brojiv broj vrijednosti. Vrijednosti u spremniku mogu se prelaziti pomoću iteratora - posebno popisa.

Osim prelaska, Iteratori također daju pristup elementima podataka u spremniku, ali sami ne radeponavljanjetj. ne bez neke značajne slobode uzete s tim konceptom ili uz trivijalnu upotrebu terminologije. Iterator je gotovo sličan akursor baze podatakau ponašanju. Evo jednostavnog primjera Iteratora u .



my_obj = {'Edureka', 'Python', 'iterator'} iter_obj = iter (my_obj) ispis (sljedeći (iter_obj))

Izlaz: Edureka

Iterator je bilo koja vrsta Pythona koja se može koristiti s 'for in loop'.Bilo koji objekt koji će se koristiti kao pokretač mora primijeniti sljedeće metode.

iteratori u python - edureka



1. __iter __ ()

Poziva se na inicijalizaciju Iteratora.Trebao bi vratiti objekt koji ima sljedeću ili __next__ metodu.

2. __sljedeći __ ()

Sljedeća metoda Iteratora vraća sljedeću vrijednost za Iterable.

Kada se Iterator koristi s petljom 'za', implicitno se poziva next () na objektu Iterator. Ova metoda trebala bi koristiti StopIteration kako bi signalizirala kraj iteracije.Zajedno se ove dvije metode nazivaju Iterator Protocol. Pokušajmo na primjeru shvatiti kako for petlja djeluje kao Iterator u Pythonu.

za i u objektu: print (i)

Razumijemo kako for petlja radi kao Iterator.

# stvorite objekt iteratora iz te iterabilne iter_obj = iter (iterable) # beskonačna petlja dok je True: try: # get the next item element = next (iter_obj) # napravite nešto s elementom osim StopIteration: # ako je StopIteration podignuta, prekid iz petlje pauza

Sad kad znamo kako za petlju radi kao Iterator. Razumijemo kako možemo implementirati prilagođene iteratore u Pythonu.

Prilagođeni iteratori

Sada pogledajmo kako možemo implementirati prilagođene iteratore u Pythonu. Da bismo to razumjeli, poslužit ćemo se primjerom. U ovom ćemo primjeru implementirati metode __iter __ () i __next __ ().

klasa MyNumbers: def __iter __ (self): self.a = 1 return self def __naprijed __ (self): x = self.a self.a + = 1 return x myclass = MyNumbers () myiter = iter (myclass) print (next ( myiter)) print (sljedeći (myiter)) print (sljedeći (myiter))

Izlaz: jedan

2

3

Sad kad znamo kako možemo implementirati prilagođene iteratore, pogledajmo beskonačne iteratore u Pythonu.

Beskrajni ponovitelji

Nije uvijek obvezno da se predmet u predmetu Iterator mora iscrpiti. Mogu biti beskonačni ponovitelji (koji nikad ne završavaju). Evo osnovnog primjera za demonstriranje beskonačnih iteratora.

Ugrađeni iter ()može se pozvati s dva argumenta, pri čemu prvi argument mora biti objekt (funkcija) koji se može pozvati, a drugi je stražar. Iterator poziva ovu funkciju sve dok vraćena vrijednost ne postane jednaka sentinelu.

Uzmimo primjer da to shvatimo

klasa MyNumbers: def __iter __ (self): self.a = 1 return self def __naprijed __ (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))

Izlaz: jedan
2
3
4
5

U gornjem primjeru, izvršenje će se nastaviti sve dok nastavljamo s dodavanjem ispisa. Da bismo zaustavili beskonačne iteratore, trebamo upotrijebiti izjavu stopIteration.

tvrtke koje koriste r programski jezik

StopIteracija

Da bismo zauvijek zaustavili ponavljanje, koristimo naredbu StopIteration. Razumijemo to s nekoliko primjera.

klasa MyNumbers: def __iter __ (self): self.a = 1 return self def __naprijed __ (self): ako self.a & ampampamplt = 5: x = self.a self.a + = 1 return x else: podići StopIteration myclass = MyNumbers () myiter = iter (moj razred) za x u myiter: print (x)

Izlaz: jedan
2
3
4
5

Sada čim uvjet je false, izvršenje će se premjestiti u blok else i iteracija će se zaustaviti. Pogledajmo sada nekoliko drugih primjera iteratora u Pythonu.

Primjeri Python Iteratora

Evo još nekoliko primjera iteratora u Pythonu.

my_obj = ['Edureka', 'python', 'iterator'] iter_obj = iter (my_obj) ispis (sljedeći (iter_obj))

Izlaz: Edureka

U ovom primjeru koritnicu koristimo kao iterabilni objekt.

my_obj = ('Edureka', 'python', 'iterator') iter_obj = iter (my_obj) ispis (sljedeći (iter_obj))

Izlaz: Edureka

Niz možemo koristiti čak i kao iterabilni objekt u pythonu.

my_obj = 'Edureka' iter_obj = iter (my_obj) ispis (sljedeći (iter_obj))

Izlaz: JE

To nas dovodi do kraja ovog članka gdje smo naučili kako s primjerima koristimo Python Iterators. Nadam se da vam je jasno sve što je s vama podijeljeno u ovom vodiču.

Ako smatrate da je ovaj članak o “Python Iteratorima” relevantan, pogledajte pouzdana tvrtka za internetsko učenje s mrežom od više od 250 000 zadovoljnih učenika raširenih širom svijeta.

Ovdje smo da vam pomognemo u svakom koraku na putovanju i osmislimo kurikulum namijenjen studentima i profesionalcima koji žele biti . Tečaj je osmišljen kako bi vam pružio prednost u programiranju Pythona i osposobio vas za osnovne i napredne koncepte Pythona, zajedno s raznim Kao

Ako naiđete na neko pitanje, slobodno postavite sva svoja pitanja u odjeljku za komentare 'Python Iterators'. Naš će tim rado odgovoriti.