生成器
生成器是特殊的迭代器,一边循环一边计算的机制。
注意点:
1、有些数据受内存的影响,数据集合的容量是有限的
2、创建了一个100万个元素的数据,需要很大的存储空间,我们需要使用100个数据,后面的数据比较占用空间
3、生成器存储着生成元素的算法,一边循环,一边计算
生成器实现;
1:
g = (x for x in range(10))
#for i in g
#print(i)
print(next(g))
2:
def fb(month):
m = 0
a,b = 0,1
while m<month:
yield b
a,b = b,a+b
m +=1
#print('a:',a,'b:',b)
if __name__ == '__main__':
ret = fb(5)
print(type(ret))
唤醒生成器可以用next(ret)也可以用ret.send(None)