在 Python 中重置生成器对象:探索替代方案
生成器提供了一种迭代值序列的有效方法,而无需在记忆。然而,一旦生成器产生了所有值,它就会耗尽并且不能直接重用。这就提出了如何在 Python 中重置生成器对象的问题。
不幸的是,生成器没有内置的重置方法。要重用生成器,您有多种选择:
考虑每个选项的以下代码摘录:
选项1(再次运行生成器函数):
y = FunctionWithYield()
for x in y:
print(x)
y = FunctionWithYield()
for x in y:
print(x)
选项 2(将生成器结果存储在列表中):
y = list(FunctionWithYield())
for x in y:
print(x)
# Can iterate again:
for x in y:
print(x)
这些选项之间的选择取决于程序的具体要求。对于小型生成器或重新运行生成器函数的计算成本并不高,选项 1 更有效。选项 2 更适合大型生成器,其中可以将结果存储在内存中。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3