Sommaire

Les générateurs Générateur

Un générateur permet de parcourir une série d’éléments (à la manière d’une liste), cependant, il ne les stocke pas tous en mémoire comme une liste. En effet, le générateur produit les éléments un par un et ceux-ci doivent être immédiatement traités (par exemple dans une boucle). Il permet donc un gain de performance, notamment lorsque l’on travaille sur de gros volumes de données. C’est pour cela qu’un certain nombre de méthodes d’Owlready retournent des générateurs et non des listes.

Les générateurs peuvent aussi être convertis en listes avec la fonction list(), par exemple pour l’affichage, comme ci-dessous :

>>> print(list(mon_générateur))

En revanche, pour effectuer une boucle sur un générateur, il est préférable de ne pas utiliser list() pour améliorer les performances, comme suit :

>>> for x in mon_générateur: print(x)