python中的生成器 generator yield
来源:互联网 发布:淘宝卖家评分怎么算的 编辑:程序博客网 时间:2024/04/29 22:38
今天复习廖大的教程,复习到了生成器,之前这里看过一遍,但是已经忘的差不多了
今天再来复习一遍
python中的generator保存的是算法,真正需要计算出值的时候才会去往下计算出值。它是一种惰性计算(lazy evaluation)。
第一种方法:把一个列表生成式的[]
改成()
,就创建了一个generator:
>>> g = (x*x for x in range(11))
>>> for i in g:
print(i)
这里就是一个生成器
现在来按照斐波那契数列写一个方法:
>>> def fib(x):
n,a,b=0,0,1
while n < x:
print(b)
a,b = b,a+b
n = n+1
return "done"
第二种方式:在函数中使用yield关键字,函数就变成了一个generator。
函数里有了yield后,执行到yield就会停住,当需要再往下算时才会再往下算。所以生成器函数即使是有无限循环也没关系,它需要算到多少就会算多少,不需要就不往下算。
def odd(): print('step 1') yield 1 print('step 2') yield(3) print('step 3') yield(5)
>>> o = odd()>>> next(o)step 11>>> next(o)step 23>>> next(o)step 35
阅读全文
0 0
- python中的生成器 generator yield
- 【Python】理解yield和generator(生成器)
- Python yield关键字 和 Generator(生成器)
- python中的生成器generator
- Python 中的yield 以及 generator
- python中的生成器(generator)
- python中的生成器(generator)
- Python中的生成器(generator)
- 关于Python生成器(Generator的yield、next、send)
- Python生成器详解(从Iterable,Iterator知Generator,Yield)
- Python关键字yield把函数变为generator生成器
- Python中的生成器——yield
- python generator / yield statement
- Python yield expression (generator)
- python中yield generator
- python iterator generator yield
- Python yield and generator
- python yield和generator
- Android帧动画
- FPGA实现JPEG-LS无损压缩算法
- HTTP协议中PUT和POST使用区别
- 鸡蛋栈
- AI_学习入门
- python中的生成器 generator yield
- POJ
- 安装Ubuntu和虚拟机步骤
- CCF历届真题之门禁系统(_1412_1_AccessControlSystem.java)
- SQL基础(1)
- android java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.pr
- Go实战--golang中OAuth2.0的使用(使用google账号进行登陆验证)
- android opencv通过Camera2实现的JavaCamera2View
- 是用pthread_exit函数时注意的问题