Python3 可迭代 和 迭代器

2021-08-22 13:24:06 字數 988 閱讀 9447

可迭代iterable

可用for迴圈的資料型別:1. 集合資料型別,如list,tuple,dict,set,str等

2. generator,包括生成器和帶yield的generator function

生成器不但可以作用於for迴圈,還可以被next()函式不斷呼叫並返回下乙個值,

直到最後丟擲stopiteration錯誤表示無法繼續返回下乙個值了。

以上為可迭代物件:iterable

可以使用isinstance()判斷乙個物件是否是iterable物件

from collections import iterable

print('iterable:',isinstance([1, 2, 3],iterable))

iterable: true

迭代器 iterator:

可以使用isinstance()判斷乙個物件是否是iterator物件

python 的 iterator 物件表示的是乙個資料流,可不斷用next()函式返回下乙個資料,直到無資料時丟擲stopiteration錯誤

from collections import iterator

print('iterator:',isinstance([1, 2, 3],iterator)) # 列表是可迭代物件,但不是迭代器

print('iterator:',isinstance(iter([1, 2, 3]),iterator)) # iter()將可迭代物件轉換為迭代器

print('iterator:',isinstance((i*2 for i in range(10)),iterator)) # 生成器是可迭代物件,也是迭代器

iterator: false

iterator: true

iterator: true

python3 迭代器 python3 迭代器

auther aaron fan 可以直接作用於for迴圈的物件統稱為可迭代物件 iterable 可以使用isinstance 判斷乙個物件是否是iterable物件 from collections import iterable isinstance iterable true isinsta...

迭代器和可迭代

所有的迭代器都是可迭代的 迭代器模式 實現乙個自定義的迭代器模式需要兩個類,分別為實現了 iter 方法的類和通過 iter 返回的迭代器例項類 實現了 iter 和 next 方法 下面例子簡單實現了上述功能。12 3456 78910 1112 1314 1516 1718 1920 2122 ...

Python3 可迭代物件 迭代器與生成器

提問 from collections import iterator,generator a a 2for a in range 10 print isinstance a,iterator true print isinstance a,generator true序列可以迭代的原因 bifit...