Maison > développement back-end > Tutoriel Python > Comment remodeler un générateur Python pour plusieurs itérations ?

Comment remodeler un générateur Python pour plusieurs itérations ?

Patricia Arquette
Libérer: 2024-10-30 04:58:28
original
632 Les gens l'ont consulté

How to Reshape a Python Generator for Multiple Iterations?

Réinitialisation des objets générateurs en Python

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 :

Option 1 : Exécuter à nouveau la fonction du générateur

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>
Copier après la connexion

Option 2 : stocker les résultats du générateur en mémoire

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>
Copier après la connexion

Considérations

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal