迭代,可迭代物件,迭代器,生成器詳解

2021-10-23 17:48:53 字數 694 閱讀 1788

1. 迭代:就是在一些元素中獲取元素的過程或者一種方式(利用迴圈…)

2. 可迭代物件:

•1.生成器

•1.1 列表推導式 將列表推導式外括號換成() 小括號

•1.2 函式中包含yield關鍵字

•2.列表,元組,字串,字典…

使用isinstance()語句來判斷是否是可迭代物件

**演示:

from collections.abc import iterable

lit =[1

,2,3

,4,5

,6]r =

isinstance

(lit, iterable)

print

(r)#輸出結果:true 列表是乙個可迭代物件

3. 迭代器

•迭代器是乙個可以記住遍歷位置的物件,迭代器物件只能從序列的第乙個元素開始訪問,直至所有元素被訪問完,並且只能往前不能往後。

•可以被next()函式呼叫並不斷返回下乙個值的物件我們稱之為迭代器 iterator

可迭代的不一定迭代器,迭代器一定是可迭代的

生成器是可迭代的,也是迭代器

列表,元組,字串,字典…是可迭代的,但不是迭代器

•使用內建函式iter()可將可迭代的(列表,元組,字串,字典…)變成迭代器

生成器是為了優化程式節省記憶體

可迭代物件 迭代器,生成器

可迭代物件 iterator 列表 集合 元組 字典 字串 生成器 我們可以使用isintance 判斷乙個物件是否是iterator物件 生成器 通過列表生成式,我們可以直接建立乙個列表,但是,受到記憶體限制,列表容量肯定是有限的,如果我們僅僅需要訪問前面幾個元素,如果列表元素可以按照某種演算法推...

可迭代物件 迭代器 生成器

可迭代物件 for迴圈機制 迭代器生成器 總結type所返回的型別是例項物件的類物件,而isinstance所進行的判斷則包含了例項物件的類物件及其父類。如圖 可迭代物件 迭代器 生成器所屬的型別分別為collections包裡的iterable,iterator,generator.實現了 ite...

可迭代物件 迭代器 生成器

名詞解釋 可迭代物件 1 遵循了 實現了 迭代器協議的物件。物件內部定義了乙個 iter 方法,以實現迭代器協議 2 列表 元組 字典 字串等等的都不是可迭代物件,當用for迴圈遍歷的時候,其實for先去執行了.iter 方法,將列表 元組 字串等變成乙個可迭代的物件,在進行迭代。iter 下有 n...