可以被next()不斷調(diào)用并返回下一個值的對象,是迭代器。比如,生成器就是一個迭代器。它既可以被for遍歷,還可以被next()函數(shù)調(diào)用。
但是list set等類型,它們只是一個可以被迭代的對象(Iterable),卻不是一個迭代器。
使用函數(shù)iter()可以將它們轉(zhuǎn)變?yōu)榈?。譬如?/p>
>>>a = [a, b, c]
>>>next(a)
Traceback (most recent call last):
File "<pyshell#14>", line 1, in <module>
next(a)
TypeError: 'list' object is not an iterator
>>>b = iter(a)
>>>next(b)
>>>a