首页 > 其他 > 详细

生成器

时间:2018-04-30 10:42:57      阅读:145      评论:0      收藏:0      [点我收藏+]

生成器:在调用是才生成相应的数据,只记录当前的位置,只有一个__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__())

生成器

原文:https://www.cnblogs.com/zhowhen/p/8972921.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!