笔记9列表生成器

1、在Python中,这种一边循环一边计算的机制,称为生成器:generator,只要把一个列表生成式的[]改成(),就创建了一个generator

2、generator也可以迭代,用for来列出内部元素

>>>g = (x*x for x in range(10))
>>>for n in g
...print (n)

3、如果一个函数里面包含“yield”,这个函数就不再是普通函数,而是一个generator,关键点在于,函数是顺序执行,遇到return或者最后一行语句返回,而generator,在每次调用next()的时候执行,遇到yield返回,再次执行时从上次返回的yield语句处继续执行。

例子:定义一个generator,依次返回1、3、5

def odd():
    print ('step 1')
    yield (1)
    print ('step 2')
    yield (2)
    print ('step 3')
    yield (3)

调用的时候,首先生成generator对象,用next()不断获取下一个返回值

>>>o = odd
>>>next (o)
step 1
1
>>>next (o)
step 2
3
>>>next (o)
step 3
5

这里odd已经是generator




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值