rocvfx的博客

Goals determine what you're going to be.

笔记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




阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/rocvfx/article/details/51544615
个人分类: 牛逼python
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

笔记9列表生成器

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭