首先我们谈谈简单的迭代器方法:_next_()
Python中的迭代协议:有_next_方法的对象会前进到下一个结果,而在一系列结果的末尾,则会引发StopIteration。在Python中,任何这类对象都被默认为是可迭代的。任何这类对象也能以for循环或者其他的迭代工具遍历,因为所有的迭代工具内部工作起来都是在每次迭代中调用_next_,并且捕获StopIteration异常来确定什么时候停止。
手动迭代:iter和next
我们来看如下一个例子:
L=[1,2,3,4]
I=iter(L)
I.next()
我们丢到jupyter中调试,这是对一个最简单的列表进行的迭代,测试的结果完全是依照这迭代协议进行。然而在这里值得提醒的一点,在Python2.6中,next的方法的使用是I.next(),而在之后的Python3.0的版本之后,next的方法的调用变成了next(I),请读者们自行测试,如果在Python3.0之后的版本进行调用I.next(),将会有'list_iterator' object has no attribute 'next'的报错提醒。