且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

Python3快速入门——(9)生成器 (generator)

更新时间:2021-10-14 07:47:30

生成器 (generator)

#生成器generator 在Python中,这种一边循环一边计算的机制,称为生成器,能节省大量的空间
L=[x*x for x in range(1,11)]
g=(x*x for x in range(1,11)) #创建L和g的区别仅在于最外层的[]和(),L是一个list,而g是一个generator
next(g) #如果要一个一个打印出来,可以通过next()函数获得generator的下一个返回值
for n in g: #用for循环,generator也是可迭代对象
print(n)
#举例:斐波那契数列(Fibonacci)除第一个和第二个数外,任意一个数都可由前两个数相加得到
#1, 1, 2, 3, 5, 8, 13, 21, 34, ...
def fib(max): #fib函数是定义了斐波拉契数列的推算规则
n,a,b=0,0,1
while n<max:
print(b)
a,b=b,a+b
n=n+1
return 'done'
#如果一个函数定义中包含yield关键字,那么这个函数就不再是一个普通函数,而是一个generator
def fib(max): #fib函数是定义了斐波拉契数列的推算规则
n,a,b=0,0,1
while n<max:
yield b
a,b=b,a+b
n=n+1
for x in fib(7):
print(x)

Python3快速入门——(9)生成器 (generator)