生成器(Generators)是 Python 中的一种特殊类型,允许你按需产生数据,而不是一次性将所有数据加载到内存中。这对于处理大量数据或需要高效内存使用的场景非常有用。

什么是生成器?

生成器是一种特殊的迭代器,它允许你一次只产生一个值,而不是一次性产生所有值。生成器的工作原理是通过 yield 语句来暂停函数的执行,并在每次迭代时恢复执行。

生成器函数

要创建一个生成器,你需要定义一个函数,并在函数中使用 yield 语句。以下是一个简单的生成器函数示例:

def generate_numbers(n):
    for i in range(n):
        yield i

# 使用生成器
for number in generate_numbers(5):
    print(number)

生成器表达式

生成器表达式与列表推导式类似,但它们返回生成器对象而不是列表。以下是一个生成器表达式的示例:

numbers = (x * 2 for x in range(5))
for number in numbers:
    print(number)

生成器的优势

  • 节省内存:生成器不会一次性将所有数据加载到内存中,而是按需生成数据。
  • 高效:生成器可以处理大量数据,而不会占用太多内存。

扩展阅读

想要了解更多关于 Python 生成器的知识,可以阅读我们的Python 生成器深入指南

Python 生成器示例