可迭代对象:可以直接用于for循环的对象统称为可迭代对象:Iterable,可以通过isinstance()判断一个对象是否是可迭代对象
>>> from collections import Iterable >>> isinstance([],Iterable) True >>> isinstance((),Iterable) True >>> isinstance('hello',Iterable) True >>> isinstance((x for x in range(10)),Iterable) True >>> isinstance(1,Iterable) False >>>
迭代器:不但可以作用于for循环,还可以被next()函数不断调用并返回下一个值的对象称为迭代器:Iterator
同样可以通过isinstance()判断一个对象是不是迭代器对象
>>> from collections import Iterator >>> isinstance((x for x in range(10)),Iterator) True >>> isinstance([],Iterator) False >>> isinstance((),Iterator) False >>> isinstance('hello',Iterator) False
可以使用Iter()函数把list、dict、str等Iterable变为Iterator
>>> isinstance(iter([]),Iterator) True >>> isinstance(iter('hello'),Iterator) True >>> isinstance(iter(()),Iterator) True >>>