首頁  >  文章  >  後端開發  >  如何重塑 Python 生成器以進行多次迭代?

如何重塑 Python 生成器以進行多次迭代?

Patricia Arquette
Patricia Arquette原創
2024-10-30 04:58:28625瀏覽

How to Reshape a Python Generator for Multiple Iterations?

在 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 中重置生成器物件的最佳方法將取決於特定的上下文。正在使用中。

以上是如何重塑 Python 生成器以進行多次迭代?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn