生成器和迭代器是 Python 中用于处理大量数据的重要工具。生成器是一种特殊的函数,它可以通过 yield 语句来逐步生成数据,而不是一次性生成所有数据。迭代器是一种对象,可以通过迭代器协议(即定义了 iter() 和 next() 方法)来逐个访问数据。

生成器和迭代器的使用可以大大节省内存空间,特别是处理大量数据时。下面是一个简单的示例,演示了如何使用生成器和迭代器:

# 生成器示例
def my_generator(n):
    for i in range(n):
        yield i

gen = my_generator(5)
for i in gen:
    print(i)

# 迭代器示例
class MyIterator:
    def __init__(self, n):
        self.n = n
        self.i = 0

    def __iter__(self):
        return self

    def __next__(self):
        if self.i < self.n:
            result = self.i
            self.i += 1
            return result
        else:
            raise StopIteration

iter = MyIterator(5)
for i in iter:
    print(i)

在上面的示例中,my_generator() 函数是一个生成器,它通过 yield 语句逐步生成数字。MyIterator 类是一个迭代器,它实现了 iter() 和 next() 方法,用于逐个访问数字。

生成器和迭代器是 Python 函数式编程中非常重要的概念,可以帮助我们更高效地处理数据。在实际应用中,我们可以将它们结合使用,以提高代码的可读性和性能。