El llenguatge de programació Python ha escalat tots els aspectes de la innovació, inclosos , , , etc. Un dels molts motius d’aquesta gesta són conceptes com Python Iterators, conceptes com aquests són els elements bàsics del triomf de Python com a llenguatge de programació. En aquest article, revisarem els conceptes següents per entendre els iteradors de Python:
- Iterator vs Iterable
- Què són els iteradors Python?
- Iteradors personalitzats
- Iteradors infinits
- StopIteration
- Exemples d'iteradors de Python
Iteradors vs Iterable
Un objecte de Python que es pot utilitzar com a objecte Iterable s’anomena Iterable. Això significa bàsicament que es pot iterar la seqüència de l'objecte. La majoria de les col·leccions de Python són com llista , , tupla , conjunts , i fins i tot abast es pot tractar com un iterable.
Què són els iteradors Python?
Un Python I terador és un contenidor que conté un nombre comptable de valors. Els valors d’un contenidor es poden recórrer mitjançant iteradors, sobretot llistes.
A part del recorregut, els iteradors també donen accés als elements de dades d'un contenidor, però no en funcioneniteracióés a dir, no sense una llibertat significativa presa amb aquest concepte o amb un ús trivial de la terminologia. Un iterador és gairebé similar a uncursor de base de dadesen el comportament. Aquí teniu un exemple senzill de l 'Iterator a .
my_obj = {'Edureka', 'Python', 'iterator'} iter_obj = iter (my_obj) print (next (iter_obj))
Sortida: Edureka
Iterator és qualsevol tipus de Python que es pot utilitzar amb un 'for in loop'.Qualsevol objecte que s'hagi d'utilitzar com a iterador ha d'implementar els mètodes següents.
1. __iter __ ()
Es demana a la inicialització d’un iterador.Hauria de retornar un objecte que tingui un mètode següent o __next__.
2. __següent __ ()
El següent mètode de l’iterador retorna el següent valor de l’iterable.
Quan s’utilitza un iterador amb un bucle ‘for in’, el següent () és cridat implícitament per a l'objecte Iterator. Aquest mètode hauria d’utilitzar una StopIteration per indicar el final de la iteració.Junts, aquests dos mètodes s’anomenen protocol iterador. Intentem entendre com un bucle for actua com un iterador a Python amb un exemple.
per a l'objecte: print (i)
Anem a entendre com el bucle funciona com un iterador.
# creeu un objecte iterador a partir d'aquest iterable iter_obj = iter (iterable) # bucle infinit mentre és True: proveu: # obteniu l'element següent element = next (iter_obj) # feu alguna cosa amb l'element excepte StopIteration: # si StopIteration està aixecat, trenca del bucle trencar
Ara que ja sabem, com per a bucle treballa com a iterador. Comprenem com podem implementar iteradors personalitzats a Python.
Iteradors personalitzats
Vegem ara com podem implementar iteradors personalitzats a Python. Per entendre-ho, farem servir un exemple. En aquest exemple, implementarem els mètodes __iter __ () i __next __ ().
classe Els meus números: def __iter __ (self): self.a = 1 return self def __següent __ (self): x = self.a self.a + = 1 return x myclass = MyNumbers () myiter = iter (myclass) imprimir (següent ( myiter)) imprimir (next (myiter)) imprimir (next (myiter))
Sortida: 1
2
3
Ara que ja sabem com podem implementar iteradors personalitzats, fem una ullada a infinits iteradors a Python.
Iteradors infinits
No sempre és obligatori que l’article d’un objecte Iterator s’hagi d’esgotar. Hi pot haver infinits iteradors (que no s’acaben mai). Aquí teniu un exemple bàsic per demostrar infinits iteradors.
L’incorporat iter ()es pot anomenar amb dos arguments on el primer argument ha de ser un objecte (funció) que es pot cridar i el segon és el sentinella. L'iterador crida aquesta funció fins que el valor retornat sigui igual al sentinella.
Prenguem un exemple per entendre-ho
classe Els meus números: def __iter __ (self): self.a = 1 return self def __següent __ (self): x = self.a self.a + = 1 return x myclass = MyNumbers () myiter = iter (myclass) imprimir (següent ( myiter)) imprimir (next (myiter)) imprimir (next (myiter)) imprimir (next (myiter)) imprimir (next (myiter))
Sortida: 1
2
3
4
5
A l'exemple anterior, l'execució continuarà mentre continuem afegint la declaració d'impressió. Per aturar els infinits iteradors, hem d’utilitzar la sentència stopIteration.
declaració if en consulta SQL
StopIteration
Per evitar que una iteració continuï per sempre, fem servir la declaració StopIteration. Entenguem-ho amb alguns exemples.
classe Els meus números: 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) per a x en myiter: print (x)
Sortida: 1
2
3
4
5
Ara tan aviat com el condició és falsa, l'execució es mourà al bloc else i la iteració s'aturarà. Vegem ara alguns exemples més d’iteradors a Python.
Exemples d'iteradors de Python
Aquí hi ha alguns exemples més d’iteradors a Python.
my_obj = ['Edureka', 'python', 'iterator'] iter_obj = iter (my_obj) print (next (iter_obj))
Sortida: Edureka
En aquest exemple, fem servir la tupla com a objecte iterable.
my_obj = ('Edureka', 'python', 'iterator') iter_obj = iter (my_obj) print (next (iter_obj))
Sortida: Edureka
Fins i tot podem utilitzar la cadena com a objecte iterable a Python.
my_obj = 'Edureka' iter_obj = iter (my_obj) print (next (iter_obj))
Sortida: ÉS
Això ens porta al final d’aquest article, on hem après com utilitzem els iteradors de Python amb exemples. Espero que tingueu clar tot el que us ha estat compartit en aquest tutorial.
Si heu trobat rellevant aquest article sobre els 'Iteradors de Python', consulteu-ho una empresa d'aprenentatge en línia de confiança amb una xarxa de més de 250.000 estudiants satisfets repartits per tot el món.
Estem aquí per ajudar-vos en cada pas del vostre viatge i oferir un pla d’estudis dissenyat per a estudiants i professionals que vulguin ser . El curs està dissenyat per oferir-vos un avantatge en la programació de Python i formar-vos tant per a conceptes bàsics com avançats de Python juntament amb diversos M'agrada
Si teniu cap pregunta, no dubteu a fer-vos totes les vostres preguntes a la secció de comentaris de 'Python Iterators'. El nostre equip estarà encantat de respondre.