Réinitialiser un objet générateur en Python : explorer des alternatives
Les générateurs offrent un moyen efficace d'itérer sur une séquence de valeurs sans créer de liste dans mémoire. Cependant, une fois qu’un générateur a rendu toutes ses valeurs, il est épuisé et ne peut pas être réutilisé directement. Cela soulève la question de savoir comment réinitialiser un objet générateur en Python.
Malheureusement, les générateurs n'ont pas de méthode de réinitialisation intégrée. Pour réutiliser un générateur, vous disposez de plusieurs options :
Considérez l'extrait de code suivant pour chaque option :
Option 1 (Exécuter à nouveau la fonction du générateur) :
<code class="python">y = FunctionWithYield() for x in y: print(x) y = FunctionWithYield() for x in y: print(x)</code>
Option 2 (Stocker les résultats du générateur dans une liste) :
<code class="python">y = list(FunctionWithYield()) for x in y: print(x) # Can iterate again: for x in y: print(x)</code>
Le choix entre ces options dépend des exigences spécifiques de votre programme. L'option 1 est plus efficace pour les petits générateurs ou lorsque la réexécution de la fonction du générateur ne nécessite pas de calcul coûteux. L'option 2 est plus adaptée aux grands générateurs où le stockage des résultats en mémoire est réalisable.
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!