1.什么是迭代器?
不但是一个可以被for循环遍历的可迭代对象(Iterable),还是一个可以被next()函数调用并不断返回下一个值的对象称为迭代器(Iterator对象)。
2.判断方法:
使用isinstance()函数判断一个对象是否是Iterator对象。
from collections import Iterator
print(isinstance([], Iterator))
print(isinstance((), Iterator))
print(isinstance({}, Iterator))
print(isinstance("", Iterator))
print(isinstance((x for x in range(10)), Iterator))
运行结果:
False
False
False
False
True
3.使用Iter()函数将可迭代对象转化为迭代器:
from collections import Iterator
print(isinstance(iter([]), Iterator))
print(isinstance(iter(()), Iterator))
print(isinstance(iter({}), Iterator))
print(isinstance(iter(''), Iterator))
4.实例:可迭代对象指针下移
a = (x for x in [16,28,4,66,586])
print(next(a))
print(next(a))
print(next(a))
print(next(a))
print(next(a))
运行结果:
16
28
4
66
586
注:如果继续使用next()函数调用将会跳出一个StopIteration错误表示无法继续返回下一个值。