Python 迭代器 生成器

2022-07-10 13:45:15 字數 804 閱讀 7925

迭代器是乙個可以記住遍歷的位置的物件。 換言之,當我們想要遍歷乙個集合中的元素時,需要有人來「記錄」當前訪問的位置,而迭代器正是起到這樣的作用。

迭代器物件從集合的第乙個元素開始訪問,直到所有的元素被訪問完結束。

迭代器只能往前不會往後

呼叫python內建函式iter()可以獲取可迭代物件的迭代器

判斷是否為可迭代物件:內建物件isinstance(物件名,iterable)和collections模組

1. iter()建立迭代器物件

list1 = [11,22,33,44,55]

iter1 = iter(list1)#建立迭代器物件

for item in iter1:#遍歷輸出

print(item)

[out]:11 22 33 44 55

2. next()返回迭代器的下乙個元素

list1 = [11,22,33,44,55]

iter1 = iter(list1)

print(next(iter1))#輸出迭代器的下乙個元素

print(next(iter1))

[out]:11 22

生成器是指生產乙個新的迭代器的函式。在呼叫生成器執行的過程中,每次遇到yield時函式會暫停並儲存當前所有的執行資訊,返回yield的值,並在下一次執行next()方法時從當前位置繼續執行。

定義乙個以yield關鍵字標識返回值的函式

呼叫剛剛建立的函式,即可建立乙個生成器

Python 迭代器 生成器

可以直接作用於for迴圈的物件,統稱為可迭代物件 iterable。iterator物件表示的是乙個資料流,iterator物件可以被next 函式呼叫並不斷返回下乙個資料,直到沒有資料時丟擲stopiteration錯誤。可以把這個資料流看做是乙個有序序列,但我們卻不能提前知道序列的長度,只能不斷...

python 迭代器,生成器

什麼事迭代 可直接用作與for迴圈的物件統稱為可迭代物件 可以被next 函式呼叫,並不斷返回下乙個值的物件稱為迭代器,所有的iterable均可以通過內建函式iter 來轉變為iterator。對於迭代器來講,有乙個next 就夠了。在你使用for和in語句時,程式就會自動呼叫即將被處理的物件的可...

python 迭代器 生成器

知識背景 1 呼叫乙個普通的python函式時,一般是從函式的第一行 開始執行,結束於return語句 異常或者函式結束 可以看作隱式的返回none 2 一旦函式將控制權交還給呼叫者,就意味著全部結束。函式中做的所有工作以及儲存在區域性變數中的資料都將丟失 3 再次呼叫這個函式時,一切都將從頭建立。...