如何重塑 Python 生成器以进行多次迭代?

Patricia Arquette
发布: 2024-10-30 04:58:28
原创
550 人浏览过

How to Reshape a Python Generator for Multiple Iterations?

在 Python 中重置生成器对象

Python 中的生成器是一种延迟评估数据的有效方法,一次生成一个值。然而,生成器只能迭代一次。如果您需要多次迭代生成器,有多种选择:

选项 1:再次运行生成器函数

重置生成器的最直接方法就是简单地运行生成器再次发挥作用。这将创建一个可以独立迭代的新生成器对象。

<code class="python">y = FunctionWithYield()
for x in y: print(x)
y = FunctionWithYield()
for x in y: print(x)</code>
登录后复制

选项 2:将生成器结果存储在内存中

您还可以将生成器结果存储在数据结构中,例如内存中的列表。这将允许您多次迭代结果。

<code class="python">y = list(FunctionWithYield())
for x in y: print(x)
# can iterate again:
for x in y: print(x)</code>
登录后复制

注意事项

选项的选择将取决于您的具体性能要求。从内存角度来看,选项 1 更高效,因为它不需要存储生成器结果。然而,从处理的角度来看,选项 2 更高效,因为它不需要重新运行生成器函数。

最终,在 Python 中重置生成器对象的最佳方法将取决于特定的上下文。正在使用中。

以上是如何重塑 Python 生成器以进行多次迭代?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!