生成器(Generators)是 Python 中的一种特殊类型的迭代器,它们允许程序员以函数的方式创建迭代器。生成器是内存高效的方式,因为它们一次只产生一个值,而不是一次性将所有值加载到内存中。

什么是生成器?

生成器允许你定义一个函数,这个函数可以一次返回一个值,而不是一次性返回所有值。当函数被调用时,它并不会立即执行,而是返回一个生成器对象。只有当你迭代这个生成器对象时,函数才会开始执行,并且每次迭代只产生一个值。

生成器的基本语法

def my_generator():
    yield 'Hello'
    yield 'World'

在上面的例子中,my_generator 是一个生成器函数。它通过 yield 关键字返回值。

使用生成器

for value in my_generator():
    print(value)

当运行上面的代码时,它将输出:

Hello
World

生成器与列表比较

与列表相比,生成器有以下几个优点:

  • 内存效率:生成器在每次迭代时只产生一个值,而列表需要将所有值存储在内存中。
  • 延迟执行:生成器可以在需要时才计算值,而列表必须在创建时计算所有值。

生成器表达式

生成器表达式与列表推导式类似,但它们使用圆括号 () 而不是方括号 []

gen_expr = (x * x for x in range(10))

这个生成器表达式会产生一个平方数的序列。

总结

生成器是 Python 中一种强大的工具,可以用于创建内存高效的迭代器。通过理解生成器的概念和语法,你可以编写出更高效、更灵活的代码。

更多关于 Python 的信息,请访问我们的 Python 教程页面


Python