Python 中的生成器是一种延迟评估数据的有效方法,一次生成一个值。然而,生成器只能迭代一次。如果您需要多次迭代生成器,有多种选择:
重置生成器的最直接方法就是简单地运行生成器再次发挥作用。这将创建一个可以独立迭代的新生成器对象。
<code class="python">y = FunctionWithYield() for x in y: print(x) y = FunctionWithYield() for x in y: print(x)</code>
您还可以将生成器结果存储在数据结构中,例如内存中的列表。这将允许您多次迭代结果。
<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中文网其他相关文章!