Réinitialisation d'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écutez à nouveau la fonction générateur) :
y = FunctionWithYield()
for x in y:
print(x)
y = FunctionWithYield()
for x in y:
print(x)
Option 2 (Stocker les résultats du générateur dans une liste) :
y = list(FunctionWithYield())
for x in y:
print(x)
# Can iterate again:
for x in y:
print(x)
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 possible.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3