Python生成器是一种特殊的函数,允许你一次生成一个值,而不是一次性生成整个序列。这使得生成器在处理大量数据时非常高效。

基本概念

生成器函数通过使用yield语句来返回值,而不是使用return。每次调用生成器函数时,它会从上次暂停的地方继续执行,直到下一个yield语句。

语法

def my_generator():
    yield 1
    yield 2
    yield 3


gen = my_generator()

# 逐个获取值
for value in gen:
    print(value)

优势

  • 节省内存:生成器不会像列表那样一次性将所有值加载到内存中。
  • 按需生成:你可以控制生成器的执行流程,按需生成值。

示例

假设我们要生成一个斐波那契数列:

def fibonacci():
    a, b = 0, 1
    while True:
        yield a
        a, b = b, a + b

# 创建生成器对象
fib = fibonacci()

# 获取前10个斐波那契数
for _ in range(10):
    print(next(fib))

扩展阅读

更多关于Python生成器的信息,请访问Python生成器教程

Python_Generator