Python Iterators: Hva er Iterator i Python og hvordan bruker jeg det?



I denne bloggen om Python-iteratorer vil vi gjøre en grundig studie av Iterators i Python og hvordan implementeres de.

Python programmeringsspråk har skalert hvert eneste aspekt av innovasjon inkludert , , osv. En av de mange grunnene til denne bragden er begreper som Python Iterators, konsepter som disse er byggesteinene til Pythons triumf som programmeringsspråk. I denne artikkelen vil vi gå gjennom følgende konsepter for å forstå Python Iterators:

Iteratorer vs Iterable

Et objekt i Python, som kan brukes som et Iterabelt objekt, kalles Iterable. Dette betyr i utgangspunktet at sekvensen i objektet kan gjentas. De fleste av Python-samlingene liker en liste , , tuple , settene , Til og med område kan behandles som en Iterabel.





Hva er Python Iterators?

En Python jeg terator er en beholder som inneholder et tellbart antall verdier. Verdier i en container kan krysses ved hjelp av Iterators - spesielt lister.

Bortsett fra traversal gir Iterators også tilgang til dataelementer i en container, men utfører ikke selviterasjondvs. ikke uten noen betydelig frihet tatt med det konseptet eller med triviell bruk av terminologien. En Iterator er nesten lik endatabasemarkøri oppførsel. Her er et enkelt eksempel på Iteratoren i .



my_obj = {'Edureka', 'Python', 'iterator'} iter_obj = iter (my_obj) utskrift (neste (iter_obj))

Produksjon: Edureka

Iterator er en hvilken som helst type Python som kan brukes med en 'for in loop'.Ethvert objekt som skal brukes som en Iterator, må implementere følgende metoder.

iteratorer i python - edureka



1. __iter __ ()

Det kalles ved initialisering av en Iterator.Den skal returnere et objekt som har en neste eller __neste__-metode.

2. __neste __ ()

Iteratorens neste metode returnerer neste verdi for Iterable.

Når en Iterator brukes med en ‘for in’ løkke, kalles next () implisitt av på Iterator-objektet. Denne metoden skal bruke en StopIteration for å signalisere slutten på iterasjonen.Sammen kalles disse to metodene Iterator Protocol. La oss prøve å forstå hvordan en for loop fungerer som en Iterator i Python med et eksempel.

for jeg i objektet: skriv ut (i)

La oss forstå hvordan for loop fungerer som en Iterator.

# opprett et iteratorobjekt fra den iterable iter_obj = iter (iterable) # uendelig løkke mens True: prøv: # få neste elementelement = neste (iter_obj) # gjør noe med element unntatt StopIteration: # hvis StopIteration er hevet, bryt fra loop gå i stykker

Nå som vi vet, hvordan for løkke fungerer som en Iterator. La oss forstå hvordan vi kan implementere tilpassede Iteratorer i Python.

Egendefinerte Iteratorer

La oss nå se på hvordan vi kan implementere tilpassede Iteratorer i Python. For å forstå dette vil vi bruke et eksempel. I dette eksemplet implementerer vi metodene __iter __ () og __next __ ().

klasse 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 (neste ( myiter)) utskrift (neste (myiter)) utskrift (neste (myiter))

Produksjon: en

2

3

Nå som vi vet hvordan vi kan implementere tilpassede Iteratorer, la oss ta en titt på uendelige Iteratorer i Python.

Uendelige Iteratorer

Det er ikke alltid obligatorisk at elementet i et Iterator-objekt må tømmes. Det kan være uendelige Iteratorer (som aldri ender). Her er et grunnleggende eksempel for å demonstrere uendelige iteratorer.

Den innebygde iter ()kan kalles med to argumenter der det første argumentet må være et objekt (funksjon) som kan kalles og andre er vaktpost. Iteratoren kaller denne funksjonen til den returnerte verdien blir lik sentinellen.

La oss ta et eksempel for å forstå dette

klasse 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 (neste ( myiter)) utskrift (neste (myiter)) utskrift (neste (myiter)) utskrift (neste (myiter)) utskrift (neste (myiter))

Produksjon: en
2
3
4
5

I eksemplet ovenfor vil kjøringen fortsette så lenge vi fortsetter å legge til utskriftsuttalelsen. For å stoppe de uendelige Iteratorene, må vi bruke stopIteration-setningen.

hva er pojo-klasse i java med eksempel

StoppIterasjon

For å stoppe en Iterasjon fra å fortsette for alltid, bruker vi StopIteration-setningen. La oss forstå dette med noen få eksempler.

klasse 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: raise StopIteration myclass = MyNumbers () myiter = iter (myclass) for x i myiter: print (x)

Produksjon: en
2
3
4
5

Nå så snart tilstanden er falsk, vil henrettelsen flytte til den andre blokken og iterasjonen vil stoppe. La oss nå se på noen få andre eksempler på Iteratorer i Python.

Python Iterator-eksempler

Her er noen flere eksempler på Iteratorer i Python.

my_obj = ['Edureka', 'python', 'iterator'] iter_obj = iter (my_obj) utskrift (neste (iter_obj))

Produksjon: Edureka

I dette eksemplet bruker vi tupelen som det iterable objektet.

my_obj = ('Edureka', 'python', 'iterator') iter_obj = iter (my_obj) utskrift (neste (iter_obj))

Produksjon: Edureka

Vi kan til og med bruke strengen som et iterabelt objekt i python.

my_obj = 'Edureka' iter_obj = iter (my_obj) utskrift (neste (iter_obj))

Produksjon: ER

Dette bringer oss til slutten av denne artikkelen hvor vi har lært hvordan vi bruker Python Iterators med eksempler. Jeg håper du er klar med alt som har blitt delt med deg i denne opplæringen.

Hvis du fant denne artikkelen om “Python Iterators” relevant, sjekk ut et pålitelig online læringsfirma med et nettverk av mer enn 250 000 fornøyde elever spredt over hele verden.

Vi er her for å hjelpe deg med hvert trinn på reisen og komme med en læreplan som er designet for studenter og fagpersoner som ønsker å være en . Kurset er designet for å gi deg et forsprang i Python-programmering og trene deg for både kjerne- og avanserte Python-konsepter sammen med forskjellige som

Hvis du kommer over noen spørsmål, er du velkommen til å stille alle spørsmålene dine i kommentarfeltet i 'Python Iterators'. Teamet vårt svarer gjerne.