Nous allons discuter de l'itérateur Python dans cet article. Iterator est un objet avec état et il se souvient où il est et quand il itère. Il renvoie l'objet unique. Il utilise les méthodes iter () et suivant (). Ceci est utilisé pour former les boucles, les compréhensions et les générateurs Python.
Convertissez n'importe quelle séquence en itérateur en utilisant la syntaxe suivante:
iter (séquence)Pour accéder à l'élément suivant, la fonction suivante () est utilisée. Tout objet dans Python qui prend en charge les deux méthodes précédentes est appelé iterator. Pour vérifier ceci, exécutez la méthode intégrée Dir () sur l'objet.
Exemple: print (dir (liste))
Ici, la liste n'est pas un itérateur car il n'a pas la méthode «__Next__».
Si nous essayons d'accéder aux éléments suivants, nous obtenons l'exception comme suit:
Pour le convertir en tant qu'Iterator, passez la liste à la méthode ITER comme indiqué dans ce qui suit. Après cela, nous voyons la méthode «__Next__».
Différence entre itérateur et itérable
ITÉRÉABLE SIGNIFIQUE NOUS POUVONS BOUTER LES VALEURES COMME LISTE, TLEPLE, STRING, etc. Tous les objets ont une méthode iter () qui est utilisée pour obtenir un itérateur. Nous verrons quelques exemples pour mieux le comprendre:
Exemple:
1 2 3 4 5 6 7 8 9 dix 11 12 13 14 15 16 17 | num = [1,2,3,4,5] numsiterator = iter (num) #same as numsiterator = nums.__iter __ () # En interne, il appellera la méthode __iter__ Dunder Imprimer (Next (numSiterator)) # Access 1er élément Imprimer (Next (numsiterator)) # Access 2nd Element Imprimer (Next (numsiterator)) # Access 3rd Element et ainsi de suite… imprimer (Next (numsiterator)) imprimer (Next (numsiterator)) imprimer (Next (numsiterator)) |
Lorsque nous atteignons la fin de la liste, cela augmente une erreur d'arrêt.
Note: Tout ce qui commence par le double soulignement et se termine par le double soulignement dans Python est appelé méthode Dunder.
Cas d'utilisation des itérateurs
Exemple 1:
Nous imprimons chaque caractère en utilisant la boucle pour.
1 2 3 4 5 | S = "Bonjour" Pour Char in S: imprimer (char) |
Exemple 2:
Nous imprimons la même chaîne en utilisant les itérateurs.
1 2 3 4 5 6 7 8 9 dix 11 | S = "Bonjour" mot = iter (s) Bien que vrai: essayer: item = suivant (mot) Imprimer (article) sauf une étape: casser |
Exemple 3:
Pour construire notre propre fonction de plage, la fonction de plage donne la plage de valeurs du début à la fin (exclusive).
1 2 3 4 5 6 7 8 9 dix 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | classe MyRange: def __init __ (self, start, arrêt): soi.val = commencer soi.stop = stop def __iter __ (soi): se retourner def __Next __ (self): Si vous-même.val> = self.arrêt: augmenter la pertinence courant = soi.val soi.val + = 1 Retour courant nums = myRange (1,5) Imprimer (Suivant (NUMS)) Imprimer (Suivant (NUMS)) Imprimer (Suivant (NUMS)) Imprimer (Suivant (NUMS)) Imprimer (Suivant (NUMS)) |
Nous écrivons la fonction de plage précédente à l'aide du générateur.
Exemple 4:
1 2 3 4 5 6 7 8 9 dix 11 12 13 14 15 16 | def my_range (début, fin): courant = démarrer tandis que le courant < end: courant de rendement courant + = 1 nums = my_range (1,5) Imprimer (Suivant (NUMS)) Imprimer (Suivant (NUMS)) Imprimer (Suivant (NUMS)) Imprimer (Suivant (NUMS)) |
Ou nous pouvons appeler ce qui suit qui produit la même sortie que l'exemple précédent.
1 2 3 | pour num en num: imprimer (num) |
Conclusion
L'itérateur doit ne pas se terminer tant que la valeur est là; Cela nous fait obtenir la valeur. Il récupère une valeur à la fois. Il est vraiment utile lors de l'écriture des programmes efficaces de la mémoire où nous avons de nombreuses valeurs que nous ne pouvons pas mettre en mémoire si nous les mettons dans une liste ou un tuple. Nous pouvons enregistrer la ressource avec ce.