Un générateur produit ses valeurs à la demande, une par une, au lieu de construire toute la liste en mémoire. On le crée avec une fonction contenant yield ou une expression génératrice. Il est utile pour de grandes séquences ou des flux, mais ne se parcourt qu'une fois.
Exemple
def compte(n):
for i in range(n):
yield i