python 一些技术知识的总结

python 生成器generator

 

生成器不会把结果保留在一个系列中,而是保存生成器的状态,在每次进行迭代时返回一个值。直到遇到stopIteration异常结束。

gen=(x**2 for x in range(5))

创建生成器generator

第一种方法:只要报一个列表生成式的[]改成(),就穿件了一个generator.

创建列表

L=[X*X for x in rang(10)]
print L
#[0,1,4,9,16,25,36,49,64,81]

第二种方法:用函数来实现。裂变生成式的for循环无法实现的时候,还可以用函数来实现。

函数定义中包含yield关键字那么函数就变成了生成器。在生成器执行过程中,遇到yield就中断,下次又继续从中断点后执行。
函数形式定义的生成器一般不会用next()来获取下一个返回值。而是直接用for循环来迭代。

def fib(m):
n, a, b = 0, 0, 1
while n < m:
    yield b
    a, b = b, a + b
    n = n + 1
    

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值