迭代器與生成器

迭代器:

    迭代器是一個讓程序員可以遍歷一個容器(特別是列表)的對象,然而,一個迭代器在遍歷並讀取一個容器的數據元素時,並不會執行一個迭代。

    迭代:他就是從某個地方(比如一個列表)取出一個元素的過程,當他們是一個循環來遍歷某個東西時,這個過程就叫迭代

    可迭代對象:python的任意對象,只要它定義了可以返回一個迭代器的__iter__方法,或者定義了,可以支持下標索引的__getitem__方法那麼他就是一個可迭代對象




生成器:

    生成器也是一種迭代器,但是你只能對其迭代一次,只是因爲它們並沒有把所有的值存在內存中,而是在運行時生成值。

    生成器最佳應用場景是:你不想同一時間將所有的計算出來的大量的結果分配到內存當中,特別是結果集裏還包含循環。這樣做回消耗大量資源。

    許多python2裏的標準庫函數都會返回列表,而python3都修改成了返回生成器,因爲生成器佔用更少的資源。



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