首页 > 编程语言 > 详细

Python生成器

时间:2020-01-22 16:06:43      阅读:77      评论:0      收藏:0      [点我收藏+]

原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/12228750.html

 

把列表推导式的方括号 [] 改成 圆括号 () ,就完成了一个生成器。

列表推导式

技术分享图片

生成器

技术分享图片

yield

在Python中,一个函数使用了 yield 方法,这个函数就是一个生成器,但是和 return 不同,yield 返回一个值后,并不会终止当前函数的运行状态,而是让其继续运行下去,局部变量也会被保存。

e.g.

def gen_number(n):
    print(gen number start...)
    while n < 3:
        yield n
        n += 1
    print(gen number end...)

output

技术分享图片

 

Summary

生成器一次只生成一个迭代对象,而不是像列表推导式一样一次性将一整个列表放到内存中,所以它非常节省内存空间。

Python生成器

原文:https://www.cnblogs.com/agilestyle/p/12228750.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!