Python 中的生成器是一種延遲評估資料的有效方法,一次產生一個值。然而,生成器只能迭代一次。如果您需要多次迭代生成器,有幾個選擇:
重置生成器的最直接方法就是簡單地運行生成器再次發揮作用。這將創建一個可以獨立迭代的新生成器物件。
<code class="python">y = FunctionWithYield() for x in y: print(x) y = FunctionWithYield() for x in y: print(x)</code>
您也可以將生成器結果儲存在資料結構中,例如記憶體中的清單。這將允許您多次迭代結果。
<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 中重置生成器物件的最佳方法將取決於特定的上下文。正在使用中。
以上是如何重塑 Python 生成器以進行多次迭代?的詳細內容。更多資訊請關注PHP中文網其他相關文章!