什么是迭代器对象¶
迭代器对象就是有一个 next()函数可以调用的对象,这样可以不通过索引来访问。
当你使用一个循环机制(例如 for 语句)需要下一个项时, 调用迭代器的 next() 方法就可以获得它。当条目全部取出后, 会引发一个 StopIteration 异常, 这并不表示错误发生, 只是告诉外部调用者, 迭代已经完成。
迭代器对象经常涉及到的两个函数分别是
- next() 返回迭代器对象的下一项,当取完时,将会引发一个StopIteration异常。
- iter() 返回一个迭代器对象。例如:
- ::
>>> a = [1, 2, 3] >>> b = iter(a) >>> type(b) <class 'list_iterator'> >>> next(b) 1 >>> next(b) 2 >>> next(b) 3 >>> next(b) Traceback (most recent call last): File "<stdin>", line 1, in <module> StopIteration
列表a是一个可迭代对象,可以用它来构造一个迭代器对象b, 通过next函数来进行迭代。 迭代到最后会抛出一个StopIteration异常。
参考pep-234(https://www.python.org/dev/peps/pep-0234/)