迭代器是什么?
迭代器是访问集合的一种方式。
迭代器是一个可以记住遍历位置的对象。
迭代器从集合的第一个元素开始访问,直到所有的元素被访问完才结束。
迭代器只能往往前,不能后退。
我们已经知道,可以直接作用于for循环的数据类型有以下几种:一类是集合数据类型:如:list,tuple,dict,set,str等;
一类是generator,包括生成器和yield的generator function。
这些可以直接作用于for循环的对象统称为可迭代对象:Iterable.
那么怎么判断一组数据是不是Iterable对象呢?
可以使用instance()判断一个对象是否是Iterable对象。
from collections.abc import Iterable
print(isinstance([1], Iterable)) # True
print(isinstance({0, 1}, Iterable)) # True
print(isinstance((1, ''), Iterable)) # True
print(isinstance({1: 10}, Iterable)) # True
print(isinstance((i for i in range(10)), Iterable)) # True
print(isinstance(10, Iterable)) # False
'''
⽣成器不但可以作⽤于 for 循环,还可以被 next() 函数不断调⽤并返回下⼀个值,直到最后抛出 StopIteration 错 误表示⽆法继续返回下⼀个值了。