Catégorie dans Générateurs

Générateurs Python

Les générateurs en Python sont des fonctions qui permettent de créer des itérateurs pour parcourir des séquences d’éléments. Ils sont utiles lorsque vous avez besoin de générer une séquence d’éléments, mais que vous ne voulez pas créer tous les éléments en mémoire en même temps.

Voici comment utiliser un générateur pour générer une série de nombres :

 

def my_range(n):
    current = 0
    while current < n:
        yield current
        current += 1

# Utiliser le générateur
for n in my_range(5):
    print(n) # Affiche 0, puis 1, puis 2, puis 3, puis 4

Pour créer un générateur, vous devez définir une fonction qui utilise le mot-clé

yield

au lieu de

return

. Lorsque vous appelez la fonction, elle ne renvoie pas de valeur, mais renvoie un itérateur qui peut être utilisé pour parcourir les valeurs générées par le générateur.

Chaque fois que vous appelez la méthode

next

de l’itérateur, le générateur exécute le code jusqu’à la prochaine instruction

yield

, qui renvoie la valeur générée. Lorsque le générateur a terminé, il lève l’exception

StopIteration

.

Les générateurs sont utiles pour économiser de l’espace mémoire lorsque vous avez besoin de générer une grande séquence d’éléments, car ils ne stockent qu’un élément à la fois en mémoire. Ils sont également utiles pour implémenter des algorithmes qui génèrent des éléments au fur et à mesure, plutôt que de les générer tous en une seule fois.