迭代器是可以迭代的对象。 在本教程中,您将了解迭代器的工作原理,以及如何使用 __iter__
和 __next__
方法构建自己的迭代器。
迭代器在Python中无处不在。 它们优雅地实现在循环,推导,生成器等中,但隐藏在明显的视觉中。
Python中的迭代器只是一个可以迭代的对象。一个将一次返回数据的对象或一个元素。
从技术上讲,Python迭代器对象必须实现两个特殊的方法 __iter__()
和 __next__()
,统称为迭代器协议。
如果我们从中获取一个迭代器,那么一个对象被称为iterable。 大多数Python中的内置容器是列表,元组,字符串等都是可迭代的。
iter()函数(这又调用 __iter__()
方法)返回一个迭代器。
使用next()函数来手动遍历迭代器的所有项目。当到达结束,没有更多的数据要返回时,它将会引发StopIteration。 以下是一个例子。
```python
define a list
my_list = [4, 7, 0, 3]
get an iterator using iter()
my_iter = iter(my_list)