在 Python 中,迭代器是一個對象,它能夠遍歷元素的集合,例如清單、元組、字典和集合,一次一個元素。迭代器實作迭代器協議,該協議由兩個特殊方法組成:
Python 中的產生器(Generator)是一種特殊類型的迭代器,它能在迭代過程中動態地產生值,而不是一次性將所有值儲存在記憶體中,這能有效節省記憶體空間,適用於處理大型序列。 產生器可透過生成器表達式(使用圓括號 ())或在函數中使用 yield 關鍵字來創建。
生成器函數是一種特殊類型的函數,它傳回迭代器物件。生成器函數不是使用 return 傳回單個值,而是使用 yield 隨著時間的推移產生一系列結果。這允許函數產生值並在每次產出後暫停其執行,從而在迭代之間保持其狀態。
def fun(max):
cnt = 1
while cnt <= max:
yield cnt
cnt += 1
ctr = fun(5)
for n in ctr:
print(n)