python 生成器
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 生成器相关的知识,希望对你有一定的参考价值。
什么是生成器
如果一个函数里面使用了yeild关键字,那么,这个函数就是一个生成器。
生成器是一种推导逻辑,调用生成器返回迭代器。
生成器的创建方法
- 改列表推导式[]为()
- 使用带有yeild关键字的函数
# 改列表推导式[]为() l = [2*x for x in range(3)] print(l) # [0, 2, 4] g = (2*x for x in range(3)) print(next(g)) # 0 print(next(g)) # 2 print(next(g)) # 4 print(next(g)) # StopIteration异常 使用带有yeild关键字的函数 def f(): print(‘step 1‘) yield 1 print(‘step 2‘) yield 2 print(‘step 3‘) yield 3 g = f() print(next(g)) # step 1 1 print(next(g)) # step 2 2 print(next(g)) # step 3 3 print(next(g)) # StopIteration 异常
斐波那契数列,除了前两项,后面的一项是前面两项的和
def fib(n): a, b, counter = 0, 1, 0 while True: if counter > n: break a, b = b, a + b # print(a, end=‘ ‘) yield a counter += 1 g = fib(10) for x in g: print(x,end=‘ ‘) # 1 1 2 3 5 8 13 21 34 55 89
以上是关于python 生成器的主要内容,如果未能解决你的问题,请参考以下文章