”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 如何在 Python 中重置生成器对象?

如何在 Python 中重置生成器对象?

发布于2024-11-09
浏览:927

How to Reset a Generator Object in Python?

在 Python 中重置生成器对象:探索替代方案

生成器提供了一种迭代值序列的有效方法,而无需在记忆。然而,一旦生成器产生了所有值,它就会耗尽并且不能直接重用。这就提出了如何在 Python 中重置生成器对象的问题。

不幸的是,生成器没有内置的重置方法。要重用生成器,您有多种选择:

  1. 再次运行生成器函数: 最简单的方法是再次运行生成器函数,创建一个新的生成器对象。此选项确保生成器从其初始状态开始,重新计算任何必要的值。
  2. 将生成器结果存储在数据结构中: 或者,您可以将生成器的结果存储在数据结构中数据结构,例如列表或数组。这允许您多次迭代这些值,而无需重新运行生成器函数。但是,此选项为整个值序列分配内存,这可能是大型生成器的一个问题。

考虑每个选项的以下代码摘录:

选项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