关闭

笔记9列表生成器

117人阅读 评论(0) 收藏 举报
分类:

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




0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:23697次
    • 积分:1484
    • 等级:
    • 排名:千里之外
    • 原创:133篇
    • 转载:28篇
    • 译文:0篇
    • 评论:0条
    文章分类
    最新评论