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é)