Aller au contenu

Itérateurs Python

Python est un langage de programmation polyvalent largement utilisé pour le développement web, l'analyse de données, et bien plus encore. Une fonctionnalité clé est son support des itérateurs, des objets qui permettent de parcourir une séquence de valeurs une par une. Cet article explore le fonctionnement des itérateurs en Python et comment les utiliser efficacement.

Comprendre les itérateurs en Python

En Python, un itérateur est un objet qui implémente le protocole d'itération, composé de deux méthodes : __iter__ et __next__. La méthode __iter__ retourne l'objet itérateur lui-même, tandis que __next__ retourne la valeur suivante. Lorsqu'il ne reste plus de valeurs, __next__ lève une exception StopIteration. Notez que les itérables (comme les listes ou les chaînes de caractères) peuvent être parcourus dans une boucle, mais seuls les itérateurs implémentent __next__ pour suivre activement l'état de l'itération.


Créer un itérateur en Python

Créer un itérateur en Python est simple. Il vous suffit de définir une classe qui implémente le protocole d'itération. Voici un exemple :

Créer un itérateur en Python à l'aide de classes

python
class MyIterator:
  def __init__(self, start, end):
    self.current = start
    self.end = end
    
  def __iter__(self):
    return self
    
  def __next__(self):
    if self.current < self.end:
      value = self.current
      self.current += 1
      return value
    else:
      raise StopIteration

Dans cet exemple, nous définissons une classe appelée MyIterator qui prend deux arguments start et end. La méthode __init__ initialise la valeur actuelle de l'itérateur à start, et la valeur de fin à end. La méthode __iter__ retourne l'objet itérateur lui-même, et la méthode __next__ retourne la valeur suivante de la séquence, en commençant par start et en terminant par end.

Utiliser les itérateurs en Python

Les itérateurs sont largement utilisés en Python, et vous les trouverez dans de nombreuses fonctions et bibliothèques intégrées. Voici quelques exemples courants :

  • Fonction range : Retourne un itérateur qui génère une séquence d'entiers.
  • Fonction zip : Prend plusieurs itérables et retourne un itérateur qui agrège leurs éléments.
  • Fonction enumerate : Prend un itérable et retourne un itérateur qui produit des paires d'indices et de valeurs.
  • Fonctions intégrées iter() et next() : iter() convertit un itérable en itérateur, tandis que next() récupère la valeur suivante. Si aucune valeur ne reste, elle lève StopIteration.

Voici comment itérer manuellement à l'aide de ces fonctions intégrées :

Itération manuelle avec iter() et next()

python
my_iter = iter([1, 2, 3])
print(next(my_iter))  # 1
print(next(my_iter))  # 2

Ce code affichera les valeurs 1 et 2, une par une.

Conclusion

Dans cet article, nous avons couvert les fondamentaux des itérateurs Python : ce qu'ils sont, comment les implémenter à l'aide de classes, et comment les utiliser avec des fonctions intégrées. Nous espérons que ce guide vous aidera à exploiter efficacement les itérateurs dans vos projets. Merci d'avoir lu.

Pratique

Quels sont les aspects essentiels des itérateurs Python selon le contenu du site web fourni ?

Trouvez-vous cela utile?

Aperçu dual-run — comparez avec les routes Symfony en production.