迭代器(Iterator)是Python中用于遍历数据结构(如列表、元组、字典和集合)的一种对象。迭代器用来顺序访问集合中的每个元素,而不需要在内存中存储整个集合。
在Python中,迭代器(Iterator)是实现了以下两个方法的对象:
__iter__()
:返回迭代器对象本身,通常在迭代开始时被调用__next__()
:返回容器中的下一个元素,如果没有更多元素可返回,则抛出StopIteration异常而实现__iter__()
方法的对象被称为可迭代对象,该方法可以返回一个迭代器。
我们可以通过定义一个类并实现__iter__()
和__next__()
方法来创建自定义迭代器,下面是一个例子。
class MyIterator:
def __init__(self, max_value: int):
self.max_value: int = max_value
self.current: int = 0
def __iter__(self) -> 'MyIterator':
return self
def __next__(self) -> int:
if self.current < self.max_value:
self.current += 1
return self.current - 1
else:
raise StopIteration
my_iter = MyIterator(5)
for value in my_iter:
print(value) # 输出0 1 2 3 4
代码中,MyIterator
是我们自定义的迭代器类,它同时实现了__iter__()
方法,因此本身也是可迭代的。