迭代器

1.可迭代對象:可直接用for循環的對象稱作可迭代對象:Iterable

●集合數據類型:list tuple dict set str

●一類是generator:包括生成器和帶yield的generator function

#可用isinstance()判斷對象是否是一個可迭代對象(Iterable)
from collections import Iterable
print(isinstance([],Iterable))
print(isinstance({},Iterable))
print(isinstance("abc",Iterable))
print(isinstance( (x for x in range(10)) ,Iterable))
print(isinstance(100,Iterable))
#True
#True
#True
#True
#False
2.可以被next()方法調用,並不斷返回下一個值的對象稱爲迭代器:Iterator       通常來說就是具有next方法,並且可以for循環
#可以用isinstance()判斷是否是一個迭代器(Iterator)
from collections import Iterator
print(isinstance([],Iterator))
print(isinstance({},Iterator))
print(isinstance("abc",Iterator))
print(isinstance( (x for x in range(10)) ,Iterator))
#False
#False
#False
#True

3.生成器就是一個迭代器(Iterator),但list,dict,str是迭代對象(Iterable),而不是迭代器(Iterator),但可以用iter()函數將其變成迭代器(Iterator)

from collections import Iterator
print(isinstance(iter([]),Iterator))
print(isinstance(iter({}),Iterator))
print(isinstance(iter("abc"),Iterator))
# True
# True
# True


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