生成器(Generators)是 Python 中的一种特殊类型,允许你通过一个函数来迭代一系列值,而不是一次性返回一个列表。这种机制在处理大量数据或需要节省内存时非常有用。

什么是生成器?

生成器是一种迭代器,它在每次迭代时仅生成一个值。这意味着生成器不会像列表那样一次性将所有值加载到内存中,而是按需生成每个值。

创建生成器

要创建一个生成器,你需要定义一个函数,并在函数中使用 yield 语句。每次调用 yield 语句时,函数会暂停执行,并返回当前值,然后等待下一次迭代。

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

for num in generate_numbers():
    print(num)

生成器与列表的区别

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

  • 内存效率:生成器不会一次性将所有值加载到内存中,而是按需生成每个值。
  • 延迟执行:生成器可以延迟执行,直到需要值时才计算。

生成器与迭代器的区别

生成器是迭代器的一种,但它们之间有一些区别:

  • 创建方式:迭代器通常通过 iter() 函数创建,而生成器通过定义一个函数并使用 yield 语句创建。
  • 内存效率:生成器在内存效率方面通常优于迭代器,因为它们不需要一次性将所有值加载到内存中。

本站链接

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

图片

Python 生成器示例

Python Generator Example