Middle
Qu'est-ce que les itérateurs et générateurs en Python et quelle est leur différence?
sobes.tech IA
Réponse de l'IA
Un itérateur en Python est un objet qui implémente la méthode __iter__() et la méthode __next__(). Il permet de parcourir séquentiellement les éléments d'une collection sans avoir besoin de charger toutes les données en mémoire immédiatement.
Un générateur est un type spécial d'itérateur créé à l'aide de fonctions avec le mot-clé yield ou d'expressions génératrices. Les générateurs calculent paresseusement les valeurs selon les besoins, ce qui économise de la mémoire et permet de travailler avec des séquences potentiellement infinies.
Principales différences :
- Un itérateur est une interface générale pour parcourir les éléments séquentiellement.
- Un générateur est une façon pratique de créer des itérateurs avec
yield.
Exemple de générateur :
def count_up_to(n):
count = 1
while count <= n:
yield count
count += 1
for number in count_up_to(5):
print(number)
Ici, count_up_to est un générateur qui renvoie les nombres de 1 à n, un à la fois.