Les générateurs en Python sont un moyen efficace d'évaluer paresseusement les données, produisant des valeurs une par une. Cependant, les générateurs ne peuvent être itérés qu’une seule fois. Si vous devez parcourir un générateur plusieurs fois, il existe plusieurs options :
Le moyen le plus simple de réinitialiser un générateur consiste simplement à exécuter le générateur. fonctionner à nouveau. Cela créera un nouvel objet générateur qui pourra être itéré indépendamment.
<code class="python">y = FunctionWithYield() for x in y: print(x) y = FunctionWithYield() for x in y: print(x)</code>
Vous pouvez également stocker les résultats du générateur dans une structure de données, comme une liste, en mémoire. Cela vous permettra de parcourir les résultats plusieurs fois.
<code class="python">y = list(FunctionWithYield()) for x in y: print(x) # can iterate again: for x in y: print(x)</code>
Le choix de l'option dépendra de vos exigences de performances spécifiques. L'option 1 est plus efficace du point de vue de la mémoire, car elle ne nécessite pas de stocker les résultats du générateur. Cependant, l'option 2 est plus efficace du point de vue du traitement, car elle ne nécessite pas de réexécuter la fonction génératrice.
En fin de compte, la meilleure façon de réinitialiser un objet générateur en Python dépendra du contexte spécifique dans lequel il est utilisé.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!