Redefinindo um objeto gerador em Python: explorando alternativas
Os geradores fornecem uma maneira eficiente de iterar sobre uma sequência de valores sem criar uma lista em memória. No entanto, uma vez que um gerador tenha produzido todos os seus valores, ele estará esgotado e não poderá ser reutilizado diretamente. Isso levanta a questão de como redefinir um objeto gerador em Python.
Infelizmente, os geradores não possuem um método de redefinição integrado. Para reutilizar um gerador, você tem várias opções:
Considere o seguinte trecho de código para cada opção:
Option 1 (Execute a função geradora novamente):
y = FunctionWithYield()
for x in y:
print(x)
y = FunctionWithYield()
for x in y:
print(x)
Opção 2 (armazenar os resultados do gerador em uma lista):
y = list(FunctionWithYield())
for x in y:
print(x)
# Can iterate again:
for x in y:
print(x)
A escolha entre essas opções depende dos requisitos específicos do seu programa. A opção 1 é mais eficiente para pequenos geradores ou quando reexecutar a função do gerador não é computacionalmente caro. A opção 2 é mais adequada para grandes geradores onde é viável armazenar os resultados na memória.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3