Iterators Python: Qu'est-ce qu'Iterator en Python et comment l'utiliser?



Dans ce blog sur les itérateurs Python, nous allons faire une étude approfondie sur les itérateurs en Python et comment sont-ils implémentés.

Le langage de programmation Python a mis à l'échelle chaque aspect de l'innovation, y compris , , , etc. Une des nombreuses raisons de cet exploit est des concepts tels que les itérateurs Python, des concepts comme ceux-ci sont les éléments constitutifs du triomphe de Python en tant que langage de programmation. Dans cet article, nous allons passer en revue les concepts suivants pour comprendre les itérateurs Python:

Itérateurs vs itérables

Un objet en Python, qui peut être utilisé comme objet Iterable, est appelé Iterable. Cela signifie essentiellement que la séquence de l'objet peut être répétée. La plupart des collections Python comme un liste , , tuple , ensembles , et même gamme peut être traité comme un Iterable.





Que sont les itérateurs Python?

Un Python I terator est un conteneur contenant un nombre dénombrable de valeurs. Les valeurs d'un conteneur peuvent être parcourues à l'aide d'itérateurs, en particulier des listes.

Outre la traversée, les itérateurs donnent également accès à des éléments de données dans un conteneur mais n'effectuent pas eux-mêmesitérationc'est-à-dire non sans une certaine liberté significative prise avec ce concept ou avec une utilisation triviale de la terminologie. Un itérateur est presque similaire à uncurseur de base de donnéesdans le comportement. Voici un exemple simple de l'itérateur dans .



my_obj = {'Edureka', 'Python', 'iterator'} iter_obj = iter (my_obj) print (next (iter_obj))

Production: Edureka

Iterator est tout type de Python qui peut être utilisé avec une boucle «for in».Tout objet devant être utilisé comme itérateur doit implémenter les méthodes suivantes.

itérateurs en python - edureka



1. __iter __ ()

Il est appelé lors de l'initialisation d'un Iterator.Il doit renvoyer un objet qui a une méthode suivante ou __next__.

2. __next __ ()

La méthode suivante de l’itérateur renvoie la valeur suivante de l’itérable.

Lorsqu'un Iterator est utilisé avec une boucle «for in», next () est implicitement appelé par sur l'objet Iterator. Cette méthode doit utiliser un StopIteration pour signaler la fin de l'itération.Ensemble, ces deux méthodes sont appelées le protocole Iterator. Essayons de comprendre comment une boucle for agit comme un itérateur en Python avec un exemple.

pour i dans l'objet: print (i)

Comprenons comment la boucle for fonctionne comme un itérateur.

# créer un objet itérateur à partir de cet iterable iter_obj = iter (iterable) # boucle infinie while True: essayez: # obtenir l'élément suivant element = next (iter_obj) # faire quelque chose avec l'élément sauf StopIteration: # si StopIteration est déclenché, rompre la boucle Pause

Maintenant que nous savons, comment le pour boucle fonctionne comme un itérateur. Voyons comment nous pouvons implémenter des itérateurs personnalisés en Python.

Itérateurs personnalisés

Voyons maintenant comment nous pouvons implémenter des itérateurs personnalisés en Python. Pour comprendre cela, nous utiliserons un exemple. Dans cet exemple, nous implémenterons les méthodes __iter __ () et __next __ ().

class 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)) print (next (myiter)) print (next (myiter))

Production: un

2

3

Maintenant que nous savons comment implémenter des itérateurs personnalisés, examinons les itérateurs infinis en Python.

Itérateurs infinis

Il n'est pas toujours obligatoire que l'élément d'un objet Iterator soit épuisé. Il peut y avoir des itérateurs infinis (qui ne finissent jamais). Voici un exemple de base pour démontrer des itérateurs infinis.

Le intégré iter ()peut être appelé avec deux arguments où le premier argument doit être un objet (fonction) qui peut être appelé et le second est la sentinelle. L'itérateur appelle cette fonction jusqu'à ce que la valeur renvoyée devienne égale à la sentinelle.

Prenons un exemple pour comprendre cela

class 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)) print (next (myiter)) print (next (myiter)) print (next (myiter)) print (next (myiter))

Production: un
2
3
4
5

Dans l'exemple ci-dessus, l'exécution se poursuivra tant que nous continuerons d'ajouter l'instruction print. Pour arrêter les itérateurs infinis, nous devons utiliser l'instruction stopIteration.

comment faire une alerte en html

StopIteration

Pour empêcher une itération de se poursuivre indéfiniment, nous utilisons l'instruction StopIteration. Comprenons cela avec quelques exemples.

class 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: augmenter StopIteration myclass = MyNumbers () myiter = iter (myclass) pour x dans myiter: print (x)

Production: un
2
3
4
5

Maintenant, dès que le condition est fausse, l'exécution se déplacera vers le bloc else et l'itération s'arrêtera. Jetons maintenant un œil à quelques autres exemples d'itérateurs en Python.

Exemples d'itérateur Python

Voici quelques exemples supplémentaires d'itérateurs en Python.

mon_obj = ['Edureka', 'python', 'itérateur'] iter_obj = iter (mon_obj) print (suivant (iter_obj))

Production: Edureka

Dans cet exemple, nous utilisons le tuple comme objet itérable.

mon_obj = ('Edureka', 'python', 'itérateur') iter_obj = iter (mon_obj) print (suivant (iter_obj))

Production: Edureka

Nous pouvons même utiliser la chaîne comme objet itérable en python.

mon_obj = 'Edureka' iter_obj = iter (mon_obj) print (suivant (iter_obj))

Production: EST

Cela nous amène à la fin de cet article où nous avons appris comment nous utilisons les itérateurs Python avec des exemples. J'espère que vous êtes clair avec tout ce qui a été partagé avec vous dans ce tutoriel.

Si vous avez trouvé cet article sur les 'Itérateurs Python' pertinent, consultez une entreprise d'apprentissage en ligne de confiance avec un réseau de plus de 250 000 apprenants satisfaits répartis dans le monde entier.

Nous sommes là pour vous aider à chaque étape de votre voyage et proposer un programme conçu pour les étudiants et les professionnels qui souhaitent devenir . Le cours est conçu pour vous donner une longueur d'avance dans la programmation Python et vous former aux concepts Python de base et avancés ainsi que divers comme

Si vous rencontrez des questions, n'hésitez pas à poser toutes vos questions dans la section commentaires de «Python Iterators». Notre équipe se fera un plaisir de vous répondre.