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