python迭代器的作用 python的迭代器

2021-10-11 12:37:21 字數 613 閱讀 6796

迭代是指能夠從序列中訪問出素的一種方式,在我們遍歷使用for...in...的物件都是可迭代物件。這裡需要補充一點的是python中一切都是物件。

判斷乙個物件是否是可迭代物件可以通過instance函式:

像我們常用的列表,字典,字串,集合,元組都是可迭代物件。

那麼我們是否可以自定義乙個可迭代物件呢,答案是肯定的。

其實可迭代物件本質上是需要乙個中間者即迭代器來幫助可迭代物件記錄當前遍歷的位置即下標,並且返回遍歷出來的。而__iter__()方法就是用來返回乙個迭代器,即my_iteration物件。通過next(my_iteration)獲取下個元素。

那麼返回了乙個迭代器以後是如何取出遍歷元素的呢,實際上for..in...先呼叫了可迭代物件中的__iter__方法來獲得乙個迭代器,然後用呼叫next來不斷獲取下乙個值,直到沒有返回值。當用next不斷獲取直到沒有值可以獲取的時候會丟擲stopiteration異常。因為for..in..自動捕獲了這個異常並pass了,所以遍歷的過程不會出現異常。

因此,乙個物件擁有__iter__方法就是乙個可迭代物件,擁有__iter__和__next__方法就是乙個迭代器。

那麼迭代器具體有什麼作用呢,這裡編寫乙個能夠生成斐波那契數列的迭代器為例。

迭代器的作用

迭代器1 import time class classmates object def init self self.names list defadd self,name def iter self 如果想要乙個物件成為乙個可以迭代的物件,即可以使用for,那麼必須實現 iter 方法 retu...

迭代器的作用

迭代器就是把不同的資料結構 相同功能 的函式裝到乙個名字相同的函式裡,這樣的話你在寫演算法的時候就可以不管你要操作的資料結構的邏輯結構了。比如不管是鍊錶,陣列還是別的什麼,統一都用迭代器進行訪問的話可能都是 next 表示下乙個元素 pre 表示上乙個元素等等 其實意思就是,不管你用的是鍊錶,2叉樹...

python迭代器作用 python中的迭代器

python中有一類工具叫做迭代工具,它能從左至右掃瞄物件。這包括了for迴圈 列表解析 in成員關係測試以及map內建函式等。可以用在上述迭代工具環境中,通過一次次迭代不斷產生結果的物件稱為可迭代物件,即是iterable。實際上可迭代物件分為兩大類,一種是實際儲存的序列,即列表 元組,字串 另一...