迭代器和生成器

2021-09-25 14:35:39 字數 704 閱讀 6475

一直以來迭代器和生成器都是很神秘的,聽起來就感覺很難,今天正好看到,打算寫一下,記錄一下。

迭代器是訪問集合元素的一種方式,迭代器物件從集合的第乙個元素開始訪問,直到所有的元素被訪問結束,但是整個過程只能前進不能後退,一直到全部的元素被訪問結束。另外,迭代器的特點是不需要所有的元素全部準備好才開始,只要到這個元素之前獲取這個元素就可以,這樣可以遍歷一些大的資料和集合。

特點:(借鑑了其他人的內容):

1.訪問者不需要關心迭代器內部的結構,僅需要通過next() 方法不斷去取下乙個內容

2.不能隨機訪問集合中的某個值,只能從頭到尾依次訪問

3.訪問到一半的時候不能往回退

4.便於迴圈比較大的資料集合,節省記憶體

貼上我的**段:

乙個函式呼叫時返回乙個迭代器,那麼這個函式就叫做生成器(generator),如果函式中包含yield語法,那這個函式就會變成生成器。

func() 稱之為生成器,執行這個函式的時候會生成迭代器。

例項:

生成器和迭代器

可以直接作用於for迴圈的物件稱為可迭代物件 iterable.可以用isinstance 判斷乙個物件是否是iterable物件。isinstance iterable true isinstance iterable true isinstance 235,iterable false 而生成器...

迭代器和生成器

1 迭代器的概念 print dir 告訴我列表的所有用法 有雙下劃線的所有方法叫做雙下方法,是c語言已經寫好的方法。你可以用不止一種方法呼叫它。列表的用法變集合 set dir 求交集 set dir set dir set dir 求列表,字典,字串它們的用法的交集 他們共同的用法 iterab...

生成器和迭代器

1.iterator 迭代器 舉例 我們對list使用for for i in 1,2,3,4 print i 12 34對string物件使用for for ch in python print ch py thon對字典物件使用for for k in print k yx對檔案使用for fo...