Python进阶篇-009. 生成器

[toc]

一、创作声明

进阶篇是对基础篇的补充,这里面更多的是各种常用库、高级语法糖的教程,因此,进阶篇的内容会比较零碎。在创作过程中,同样会借助ChatGPT来辅助。

二、生成器

生成器是一种特殊的函数,它可以在迭代过程中动态生成值,而不是一次性生成所有值。生成器使用yield关键字来定义,当调用生成器函数时,它会返回一个生成器对象。

下面是一个简单的示例,展示了如何使用生成器生成斐波那契数列:

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

fib = fibonacci()
for i in range(10):
    print(next(fib))

运行上述代码,将会输出斐波那契数列的前10个数字。

生成器函数使用yield语句来产生值,每次调用next()函数时,生成器会从上次yield语句的位置继续执行,直到遇到下一个yield语句或函数结束。

生成器在处理大量数据时非常有用,因为它们可以逐个生成数据,而不需要一次性将所有数据加载到内存中。这样可以节省内存,并且可以在需要时立即开始处理生成的数据。

三、写在最后

更多技术分享,点击传送门:https://github.com/maxiaolu66/profile

Last updated