首页 >后端开发 >Python教程 >如何在 Python 中创建和使用迭代器?

如何在 Python 中创建和使用迭代器?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-29 17:33:11230浏览

How Do I Create and Use Iterators in Python?

在 Python 中创建迭代器

在 Python 中构建迭代器需要实现迭代器协议,该协议指定了两个基本方法: __iter__() 和__下一个__()。这些方法定义了对象如何初始化和迭代一系列值。

理解迭代器协议

在 __iter__() 中,返回迭代器对象,即通常在循环开始时隐式调用。 __next__() 是返回序列中下一个值的主要方法。对于 Python 2 用户,此方法称为 next()。当所有值都用完时, __next__() 会引发 StopIteration 异常,该异常会循环构造 capture 来终止迭代。

示例:计数器迭代器

让我们创建一个简单的生成指定范围内的值的计数器迭代器:

class Counter:
    def __init__(self, low, high):
        self.current = low - 1
        self.high = high

    def __iter__(self):
        return self

    def __next__(self): # Python 2: def next(self)
        self.current += 1
        if self.current < self.high:
            return self.current
        raise StopIteration

# Usage:
for c in Counter(3, 9):
    print(c)

这将产生以下结果输出:

3
4
5
6
7
8

将生成器用于迭代器

生成器提供了另一种创建迭代器的机制。生成器函数一次产生一个值,有效地实现了迭代器协议。

def counter(low, high):
    current = low
    while current < high:
        yield current
        current += 1

# Usage:
for c in counter(3, 9):
    print(c)

上面的代码产生与 Counter 类相同的输出。

其他资源

要全面了解迭代器,请参阅 David Mertz 的文章“迭代器和简单”等资源发电机。”

以上是如何在 Python 中创建和使用迭代器?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn