首页  >  文章  >  后端开发  >  如何在 Python 中重置生成器对象?

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

Susan Sarandon
Susan Sarandon原创
2024-10-30 14:02:03452浏览

How to Reset a Generator Object in Python?

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

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

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

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

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

选项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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn