Python Iterators: Vad är Iterator i Python och hur man använder det?



I den här bloggen om Python-iteratorer kommer vi att göra en fördjupad studie om Iteratorer i Python och hur de implementeras.

Pythons programmeringsspråk har skalat varje aspekt av innovation inklusive , , , etc. En av de många anledningarna till denna bedrift är begrepp som Python Iterators, begrepp som dessa är byggstenarna i Pythons triumf som programmeringsspråk. I den här artikeln kommer vi att gå igenom följande begrepp för att förstå Python Iterators:

Iteratorer vs Iterable

Ett objekt i Python som kan användas som ett Iterabelt objekt kallas som Iterable. Detta betyder i princip att sekvensen i objektet kan upprepas. De flesta av Pythonsamlingarna gillar en lista , , tupel , uppsättningar , och även räckvidd kan behandlas som en Iterabel.





Vad är Python Iterators?

En Python I terator är en behållare som innehåller ett antal värden. Värden i en container kan passeras med hjälp av Iteratorer - särskilt listor.

Förutom traversal ger Iterators också åtkomst till dataelement i en container men utför inte i sigiterationdvs inte utan någon betydande frihet med det begreppet eller med trivial användning av terminologin. En Iterator liknar nästan endatabasmarköreni beteende. Här är ett enkelt exempel på Iterator i .



my_obj = {'Edureka', 'Python', 'iterator'} iter_obj = iter (my_obj) tryck (nästa (iter_obj))

Produktion: Edureka

Iterator är vilken typ av Python som helst som kan användas med en ”for in loop”.Alla objekt som ska användas som en Iterator måste implementera följande metoder.

iteratorer i python - edureka



1. __iter __ ()

Det kallas vid initialisering av en Iterator.Den ska returnera ett objekt som har nästa eller __nästa__-metod.

2. __nästa __ ()

Iteratorns nästa metod returnerar nästa värde för Iterable.

När en Iterator används med en ”for in” -slinga kallas nästa () implicit av på Iterator-objektet. Denna metod ska använda en StopIteration för att signalera slutet på iterationen.Tillsammans kallas dessa två metoder Iterator Protocol. Låt oss försöka förstå hur en for loop fungerar som en Iterator i Python med ett exempel.

för jag i objekt: skriv ut (i)

Låt oss förstå hur för loop fungerar som en Iterator.

# skapa ett iteratorobjekt från det iterabla iter_obj = iter (iterabelt) # oändlig slinga medan True: försök: # få nästa elementelement = nästa (iter_obj) # gör något med element förutom StopIteration: # om StopIteration höjs ha sönder

Nu när vi vet hur för loop fungerar som en Iterator. Låt oss förstå hur vi kan implementera anpassade Iteratorer i Python.

Anpassade Iteratorer

Låt oss nu titta på hur vi kan implementera anpassade Iteratorer i Python. För att förstå detta kommer vi att använda ett exempel. I det här exemplet implementerar vi metoderna __iter __ () och __next __ ().

klass 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 (next ( myiter)) skriva ut (nästa (myiter)) print (nästa (myiter))

Produktion: ett

2

3

Nu när vi vet hur vi kan implementera anpassade Iteratorer, låt oss ta en titt på oändliga Iteratorer i Python.

Oändliga Iteratorer

Det är inte alltid obligatoriskt att objektet i ett Iterator-objekt måste tömmas. Det kan finnas oändliga itteratorer (som aldrig slutar). Här är ett grundläggande exempel för att demonstrera oändliga iteratorer.

Den inbyggda iter ()kan anropas med två argument där det första argumentet måste vara ett objekt (funktion) som kan anropas och andra är sentinel. Iteratorn anropar denna funktion tills det returnerade värdet blir lika sentinel.

Låt oss ta ett exempel för att förstå detta

klass 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 (next ( myiter)) skriv ut (nästa (myiter)) tryck (nästa (myiter)) tryck (nästa (myiter)) tryck (nästa (myiter))

Produktion: ett
2
3
4
5

I exemplet ovan fortsätter körningen så länge vi fortsätter att lägga till utskriftsuttalandet. För att stoppa de oändliga Iteratorerna, måste vi använda uttalandet stopIteration.

blandning av tablådata fungerar inte

StopIteration

För att förhindra att en Iteration pågår för alltid använder vi StopIteration-uttalandet. Låt oss förstå detta med några exempel.

klass 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) för x i myiter: print (x)

Produktion: ett
2
3
4
5

Nu så snart villkoret är falskt, körningen kommer att flyttas till den andra blocket och Iterationen stoppas. Låt oss nu titta på några andra exempel på Iteratorer i Python.

Exempel på Python Iterator

Här är några fler exempel på Iteratorer i Python.

my_obj = ['Edureka', 'python', 'iterator'] iter_obj = iter (my_obj) tryck (nästa (iter_obj))

Produktion: Edureka

I det här exemplet använder vi tupeln som det iterabla objektet.

my_obj = ('Edureka', 'python', 'iterator') iter_obj = iter (my_obj) skriv ut (nästa (iter_obj))

Produktion: Edureka

Vi kan även använda strängen som ett iterabelt objekt i python.

my_obj = 'Edureka' iter_obj = iter (my_obj) tryck (nästa (iter_obj))

Produktion: ÄR

Detta leder oss till slutet av den här artikeln där vi har lärt oss hur vi använder Python Iterators med exempel. Jag hoppas att du är tydlig med allt som har delats med dig i den här handledningen.

Om du tyckte att den här artikeln om “Python Iterators” var relevant, kolla in den ett pålitligt online-lärande företag med ett nätverk med mer än 250 000 nöjda elever spridda över hela världen.

Vi är här för att hjälpa dig med varje steg på din resa och komma med en läroplan som är utformad för studenter och yrkesverksamma som vill vara en . Kursen är utformad för att ge dig ett försprång till Python-programmering och träna dig för både grundläggande och avancerade Python-koncept tillsammans med olika tycka om

Om du stöter på några frågor är du välkommen att ställa alla dina frågor i kommentarsektionen i 'Python Iterators'. Vårt team svarar gärna.