当前位置:首页python > 正文

python自定义迭代器

作者:野牛程序员:2023-08-01 09:32:45python阅读 2349

在Python中,自定义迭代器需要实现两个基本方法:__iter__()__next__()__iter__()方法返回迭代器自身,而__next__()方法返回下一个值,并在遍历完成时引发StopIteration异常。

下面是一个简单的示例,展示如何创建一个自定义的迭代器来遍历一个数字范围:

class MyRangeIterator:
    def __init__(self, start, end):
        self.current = start
        self.end = end

    def __iter__(self):
        return self

    def __next__(self):
        if self.current < self.end:
            value = self.current
            self.current += 1
            return value
        else:
            raise StopIteration

# 使用自定义迭代器
my_range = MyRangeIterator(1, 6)
for num in my_range:
    print(num)

输出:

1
2
3
4
5

在上面的例子中,定义了一个名为MyRangeIterator的自定义迭代器类,通过传入起始值和结束值来初始化迭代器。在__next__()方法中,检查当前值是否小于结束值,如果是,则返回当前值并递增当前值;否则,引发StopIteration异常,表示迭代结束。

值得注意的是,每次调用迭代器的__next__()方法时,迭代器会维护自己的状态,以便记住当前的位置,从而在下次迭代时继续返回正确的值。

自定义迭代器允许按照自己的方式遍历数据集合,并且在遍历时可以实现更加复杂的逻辑。它们是Python迭代协议的一种实现,为代码提供了更大的灵活性和可扩展性。


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击