一、可以直接作用于for循环的数据类型:
1.可迭代对象(Iterable):
(1)集成数据类型(list、tuple、dict、set、str)
(2)生成器(generator)
(3)带yield的generator函数
2.迭代器(Iterator):
可以被next()函数调用并不断返回下一个值的对象。
二、如何判断一个对象是否是Iterable/Iterator?
1.判断一个对象是否是Iterable?
>>>from collections import Iterable
>>>isinstance([], Iterable)
结果:True
2.判断一个对象是否是Iterator?
>>>from collections import Iterator
>>>isinstance((x for x in range(10)), Iterator)
结果:True
三、如何将可迭代对象转化为迭代器?
可以使用iter()函数
>>>from collections import Iterator
>>>isinstance(iter([]), Iterator)
结果:True