Python Iterators: Hvad er Iterator i Python, og hvordan man bruger det?



I denne blog om Python-iteratorer foretager vi en grundig undersøgelse af Iteratorer i Python, og hvordan implementeres de.

Python-programmeringssprog har skaleret hvert eneste aspekt af innovation inklusive , , osv. En af de mange grunde til denne bedrift er begreber som Python Iteratorer, begreber som disse er byggestenene i Pythons triumf som programmeringssprog. I denne artikel gennemgår vi følgende begreber for at forstå Python Iterators:

Iteratorer vs Iterable

Et objekt i Python, der kan bruges som et gentageligt objekt, kaldes som Iterabelt. Dette betyder grundlæggende, at sekvensen i objektet kan gentages. De fleste af Python-samlingerne kan lide en liste , , tuple , sæt , og endda rækkevidde kan behandles som en gentagelse.





Hvad er Python Iteratorer?

En Python I terator er en beholder, der indeholder et talbart antal værdier. Værdier i en container kan krydses ved hjælp af Iteratorer - især lister.

Bortset fra traversal giver Iterators også adgang til dataelementer i en container, men udfører ikke selviterationdvs. ikke uden en vis betydelig frihed taget med dette koncept eller med triviel brug af terminologien. En Iterator ligner næsten endatabasemarkøri adfærd. Her er et simpelt eksempel på Iterator i .



my_obj = {'Edureka', 'Python', 'iterator'} iter_obj = iter (my_obj) print (næste (iter_obj))

Produktion: Edureka

Iterator er enhver type Python, der kan bruges med en 'for in loop'.Ethvert objekt, der skal bruges som en Iterator, skal implementere følgende metoder.

iteratorer i python - edureka



1. __iter __ ()

Det kaldes ved initialisering af en Iterator.Det skal returnere et objekt, der har en næste eller __næste__-metode.

2. __næste __ ()

Iteratorens næste metode returnerer den næste værdi for Iterablen.

Når en Iterator bruges med en 'for in' løkke, kaldes næste () implicit af på Iterator-objektet. Denne metode skal bruge en StopIteration til at signalere slutningen af ​​iterationen.Sammen kaldes disse to metoder Iterator-protokollen. Lad os prøve at forstå, hvordan en for loop fungerer som en Iterator i Python med et eksempel.

for jeg i objekt: udskriv (i)

Lad os forstå, hvordan for loop fungerer som en Iterator.

# Opret et iteratorobjekt ud fra det iterable iter_obj = iter (iterabelt) # uendelig løkke, mens True: prøv: # få det næste elementelement = næste (iter_obj) # gør noget med element undtagen StopIteration: # hvis StopIteration hæves, gå fra loop pause

Nu hvor vi ved, hvordan til løkke fungerer som en Iterator. Lad os forstå, hvordan vi kan implementere tilpassede Iteratorer i Python.

Brugerdefinerede Iteratorer

Lad os nu se på, hvordan vi kan implementere tilpassede Iteratorer i Python. For at forstå dette vil vi bruge et eksempel. I dette eksempel implementerer vi metoderne __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 (næste ( myiter)) print (næste (myiter)) print (next (myiter))

Produktion: en

2

3

Nu hvor vi ved, hvordan vi kan implementere brugerdefinerede Iteratorer, så lad os se på uendelige Iteratorer i Python.

Uendelige rystere

Det er ikke altid obligatorisk, at genstanden i et Iterator-objekt skal udtømme. Der kan være uendelige Iteratorer (som aldrig ender). Her er et grundlæggende eksempel for at demonstrere uendelige iteratorer.

Den indbyggede iter ()kan kaldes med to argumenter, hvor det første argument skal være et objekt (funktion), der kan kaldes, og andet er sentinel. Iteratoren kalder denne funktion, indtil den returnerede værdi bliver lig med vagtpost.

Lad os tage et eksempel for at 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 (næste ( myiter)) print (næste (myiter)) print (næste (myiter)) print (next (myiter)) print (næste (myiter))

Produktion: en
2
3
4
5

I ovenstående eksempel fortsætter udførelsen, så længe vi fortsætter med at tilføje udskriftserklæringen. For at stoppe de uendelige Iteratorer er vi nødt til at bruge stopIteration-erklæringen.

logistisk regression i pythoneksempel

StopIteration

For at stoppe en gentagelse fra at vare for evigt bruger vi StopIteration-erklæringen. Lad os forstå dette med et par 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)

Produktion: en
2
3
4
5

Nu så snart den betingelse er falsk, vil eksekveringen flytte til den anden blok, og gentagelsen stopper. Lad os nu se på et par andre eksempler på Iteratorer i Python.

Eksempler på Python Iterator

Her er et par flere eksempler på Iteratorer i Python.

my_obj = ['Edureka', 'python', 'iterator'] iter_obj = iter (my_obj) print (næste (iter_obj))

Produktion: Edureka

I dette eksempel bruger vi tuplen som det iterable objekt.

my_obj = ('Edureka', 'python', 'iterator') iter_obj = iter (my_obj) print (næste (iter_obj))

Produktion: Edureka

Vi kan endda bruge strengen som et iterabelt objekt i python.

my_obj = 'Edureka' iter_obj = iter (my_obj) print (næste (iter_obj))

Produktion: ER

Dette bringer os til slutningen af ​​denne artikel, hvor vi har lært, hvordan vi bruger Python Iterators med eksempler. Jeg håber, du er klar med alt, hvad der er delt med dig i denne vejledning.

Hvis du fandt denne artikel om 'Python Iterators' relevant, skal du tjekke ud et betroet online læringsfirma med et netværk på mere end 250.000 tilfredse elever spredt over hele kloden.

Vi er her for at hjælpe dig med hvert trin på din rejse og komme med en læseplan, der er designet til studerende og fagfolk, der ønsker at være en . Kurset er designet til at give dig et forspring i Python-programmering og træne dig til både kerne- og avancerede Python-koncepter sammen med forskellige synes godt om

Hvis du støder på spørgsmål, er du velkommen til at stille alle dine spørgsmål i kommentarfeltet i 'Python Iterators'. Vores team vil med glæde svare.