生成器
Posted zhowhen
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了生成器相关的知识,希望对你有一定的参考价值。
生成器:在调用是才生成相应的数据,只记录当前的位置,只有一个__next__()方法
简单生成器:
a=[i*2for i in range(10)]# 列表生成式
print(a) #打印是列表
b=(i*2for i in range(10))#生成器表达式
print(b) #打印是当前位置
print(b.__next__()) #用__next__方法取下一个数据,位置移动到下一位
print(b.__next__()) #用__next__方法取下一个数据,位置移动到下一位
for i in b: #可用for循环取出所有数,从当前位置开始
print(i)
yied可以把一个函数变成生成器
def fib(max):
n,a,b=0,0,1
while n<max:
#print(b)
yield b
a,b=b,a+b
n+=1
return ‘done‘
f=fib(10)
print(‘_________‘)
print(f.__next__())
print(f.__next__())
print(‘_________‘)
print(f.__next__())
以上是关于生成器的主要内容,如果未能解决你的问题,请参考以下文章