迭代器和生成器

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

1.迭代器

迭代器是訪問集合元素的一種方式,迭代器對象從集合的第一個元素開始訪問,直到所有的元素被訪問結束,但是整個過程只能前進不能後退,一直到全部的元素被訪問結束。另外,迭代器的特點是不需要所有的元素全部準備好纔開始,只要到這個元素之前獲取這個元素就可以,這樣可以遍歷一些大的數據和集合。
特點:(借鑑了其他人的內容):
1.訪問者不需要關心迭代器內部的結構,僅需要通過next() 方法不斷去取下一個內容
2.不能隨機訪問集合中的某個值,只能從頭到尾依次訪問
3.訪問到一半的時候不能往回退
4.便於循環比較大的數據集合,節省內存
貼上我的代碼段:
在這裏插入圖片描述

2.生成器

一個函數調用時返回一個迭代器,那麼這個函數就叫做生成器(generator),如果函數中包含yield語法,那這個函數就會變成生成器。
在這裏插入圖片描述

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

實例:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章