迭代器

迭代器(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__()方法,因此本身也是可迭代的。

作者:Gacfox
版权声明:本网站为非盈利性质,文章如非特殊说明均为原创,版权遵循知识共享协议CC BY-NC-ND 4.0进行授权,转载必须署名,禁止用于商业目的或演绎修改后转载。
Copyright © 2017-2024 Gacfox All Rights Reserved.
Build with NextJS | Sitemap