python生成器
Python中的生成器是一种特殊的函数,它可以在需要时生成一个序列,而不是一次性生成整个序列,从而节省内存空间。
生成器的工作原理是使用yield语句,每次调用生成器函数时,它会返回一个生成器对象,执行到yield语句时会将结果返回给调用者,但是函数并不会结束,而是暂停执行,等待下一次调用。
例如,下面的代码定义了一个生成器函数,可以生成斐波那契数列:
def fib(n):
a, b = 0, 1
while a < n:
yield a
a, b = b, a + b
调用该函数时,可以使用for循环遍历生成器对象,获取每个斐波那契数列的元素:
for i in fib(10):
print(i)
输出结果为:
0
1
1
2
3
5
8
需要注意的是,生成器函数只能被遍历一次,因为生成器对象在遍历完成后就被耗尽了。如果需要重新遍历,需要重新调用生成器函数获取一个新的生成器对象。
原文地址: https://www.cveoy.top/t/topic/b0TD 著作权归作者所有。请勿转载和采集!