Python 迭代器协议概述

迭代器是 Python 中一个重要的概念,它允许你遍历一个序列(如列表、元组、字典、集合、字符串等)中的元素,而不需要一次性将所有元素加载到内存中。

什么是迭代器?

迭代器是一个可以记住遍历的位置的对象。迭代器协议要求迭代器对象必须实现两个方法:__iter__()__next__()

  • __iter__() 方法返回迭代器对象本身。
  • __next__() 方法返回序列中的下一个元素。

迭代器示例

以下是一个简单的迭代器示例:

class MyIterator:
    def __init__(self, data):
        self.data = data
        self.index = 0

    def __iter__(self):
        return self

    def __next__(self):
        if self.index >= len(self.data):
            raise StopIteration
        result = self.data[self.index]
        self.index += 1
        return result

my_iter = MyIterator([1, 2, 3, 4, 5])
for item in my_iter:
    print(item)

迭代器与生成器

生成器是迭代器的一种特殊形式,它使用 yield 语句返回序列中的每个元素,而不是 __next__() 方法。

以下是一个生成器的示例:

def my_generator():
    for i in range(5):
        yield i

my_gen = my_generator()
for item in my_gen:
    print(item)

扩展阅读

想要了解更多关于 Python 迭代器和生成器的知识,请访问Python 迭代器和生成器教程

Python 迭代器协议