在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中文網其他相關文章!