Comment créer et utiliser des générateurs en Python ?

Les générateurs en Python sont des fonctions spéciales qui retournent un flux d'éléments au lieu d'une seule valeur.

Ils utilisent le mot-clé yield et peuvent être employés pour économiser de la mémoire et améliorer les performances.

Voici un exemple de générateur qui produit les carrés des nombres :

def gen_carrés(max_n):
  n = 1
  while n <= max_n:
    yield n * n
    n += 1

Pour utiliser un générateur, utilisez une boucle for comme suit :

for carré in gen_carrés(5):
  print(carré)

Cela affiche :

1
4
9
16
25

Les générateurs sont particulièrement utiles pour les grandes séquences de données.

Par exemple, voici un générateur qui lit les lignes d'un fichier:

def read_lines(file):
  with open(file) as f:
    for line in f:
      yield line

Les générateurs sont également compatibles avec les compréhensions de listes, appelées compréhensions de générateurs :

carrés = (x*x for x in range(1, 6))

for carré in carrés:
  print(carré)

Rechercher sur le site

Formulaire de contact

Inscris-toi à Docstring

Pour commencer ton apprentissage.

Tu as déjà un compte ? Connecte-toi.