可迭代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...