在 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 中重置生成器对象?的详细内容。更多信息请关注PHP中文网其他相关文章!