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:
- Iterator vs Iterabel
- Vad är Python Iterators?
- Anpassade Iteratorer
- Oändliga Iteratorer
- StopIteration
- Exempel på Python Iterator
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.
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.