迭代器與生成器-4.1 手動遍歷迭代器

Photo by Daria Nepriakhina 🇺🇦 on Unsplash

Q:你想遍歷一個可迭代對象中的所有元素,但是卻不想使用 for 循環。

Answer

爲了手動的遍歷可迭代對象,使用 next() 函數並在代碼中捕獲 StopIteration 異 常。比如,下面的例子手動讀取一個文件中的每一行:

通常來講,StopIteration 用來指示迭代的結尾。然而,如果你手動使用上面執行的 next() 函數的話,你還可以返回一個指定值來標記結尾,比如 None 。

Discuss

大多數情況下,我們會使用 for 循環語句用來遍歷一個可迭代對象。但是,偶爾也 需要對迭代做更加精確的控制,這時候瞭解底層迭代機制就顯得尤爲重要了。下面的範例展示了迭代期間所發生的基本細節:

--

--