可直接作用于fof循环的数据类型有:
一类是集合数据类型:list ,tuple,dict,set,str
一类generator, 包括生成器 和 带yield的generator function
这些可以直接作用与for循环的对象统称为可迭代对象: Iterable
可以使用isinstance()判断一个对象是否是Iterable
可以被next()函数调用并不断返回下一个值的对象称为迭代器:Iterator
list ,dict, str虽然是Iterable, 但不是Iterator
把list,dict,str等Iterable变成Iterator 可以用iter()函数
a = [1,2,3,4,5]
iter(a)
Out[18]:
<list_iterator at 0x174b9293438>
b = iter(a)
b.__next__()
Out[20]:
1
b.__next__()
Out[21]:
2