Catégorie dans Itérateurs

Itérateurs Python

Les itérateurs en Python sont des objets qui permettent de parcourir un itérable, c’est-à-dire une séquence d’éléments tels que une liste, un tuple ou une chaîne de caractères. Ils permettent de parcourir ces éléments un par un et de les retourner au fur et à mesure.

Voici comment utiliser un itérateur pour parcourir une liste :

 

my_list = [1, 2, 3]

# Obtenir un itérateur à partir de la liste
iterator = iter(my_list)

# Utiliser la méthode `next` de l'itérateur pour accéder aux éléments de la liste un par un
print(next(iterator)) # Affiche 1
print(next(iterator)) # Affiche 2
print(next(iterator)) # Affiche 3
print(next(iterator)) # Génère une exception StopIteration

Vous pouvez également utiliser une boucle

for

pour parcourir un itérateur de manière plus concise :

 

my_list = [1, 2, 3]

# Obtenir un itérateur à partir de la liste
iterator = iter(my_list)

# Utiliser une boucle for pour parcourir l'itérateur
for element in iterator:
    print(element) # Affiche 1, puis 2, puis 3

Il est également possible de créer vos propres itérateurs en définissant une classe qui implémente les méthodes

__iter__

et

__next__

. La méthode

__iter__

doit renvoyer l’itérateur lui-même, tandis que la méthode

__next__

doit renvoyer l’élément suivant de l’itération. Si l’itération est terminée, la méthode

__next__

doit lever l’exception

StopIteration

.

Voici un exemple d’itérateur qui parcourt les nombres entiers inférieurs à un certain seuil :

 

class MyIterator:
    def __init__(self, max):
        self.max = max
        self.current = 0

    def __iter__(self):
        return self

    def __next__(self):
        if self.current >= self.max:
            raise StopIteration
        self.current += 1
        return self.current - 1

# Utiliser l'itérateur
for n in MyIterator(5):
    print(n) # Affiche 0, puis 1, puis 2, puis 3, puis 4

Les itérateurs sont une partie importante de la programmation en Python et sont largement utilisés dans de nombreux contextes pour parcourir des séquences d’éléments de manière efficace