定义:
一个迭代器(iterator)是一个管理一系列值的迭代的对象。如果一个变量i指代一个迭代器对象,那么每次调用内建函数next(i)就可以产生一个这一系列值的下一个元素,如果StopIteration异常发生则意味着没有更多的元素可以产生了。
一个iterable是一个对象,obj,可以用语句iter(obj)产生一个迭代器。
从定义可以很明显的看出iterator和iterable的区别。一个iterable对象可以产生一个iterator,一个iterator可以迭代产生一个iterable对象包含的元素。
举个例子,for循环的内部原理就是每次循环调用一次next(i),直到遇到StopIteration异常。
参考文献
Data Structures and Algorithms in Python,WILEY