生成器就是不把一个列表一下全部导入到内存中,而是一个一个生成
创建生成器
推导式创建生成器
[]生成的是列表
()生成的是生成器
In [1]: [x for x in range(5)]
Out[1]: [0, 1, 2, 3, 4]
In [2]: (y for y in range(5))
Out[2]: <generator object <genexpr> at 0x7f9ed46e4a98>
yield
def fib(times): #斐波拉契数列
n = 0
a,b = 0,1
while n<times:
yield b # 循环每执行到此处会终止
a,b = b,a+b
n+=1
return 'done'
迭代生成器
for循环迭代生成器
.next()方法
.next()方法实际调用的是__next__()