首页 > 编程语言 > 详细

python之生成器(generator)

时间:2020-08-02 17:45:35      阅读:90      评论:0      收藏:0      [点我收藏+]

定义:按照某种算法,边循环边计算推算出一个列表中的所有元素;

优点:受内存限制,列表容量是有限的,通过生成器,可以不断按算法推算出后续的元素,而不是把list的所有元素储存在内存中,从而实现内存的节约;

创建一个生成器:

1、把列表生成式[ ] 改成()

例:

技术分享图片

技术分享图片

 

上面代码中l的类型是一个list,而g是一个generator;我们可以直接通过print(l)打印出列表中的所有元素,但要打印generator类型的可以通过next( )函数来获得下一个返回值,但generator也是一个可迭代对象,是可迭代对象就可以通过for循环来遍历。

 

技术分享图片

技术分享图片

 

当然基于复杂的推算,用列表生成式无法实现可以用函数来实现,定义generator的另一种方式:一个函数中包含yield关键字,那么这个函数就不在是一个普通函数,它是一个generator,如下图所示: 

技术分享图片

 

 

技术分享图片

 

上图中函数func( )与func_y( )唯一的不同就是func( )函数中的print(a)变成了func_y( )中的yield a,func_y( )是一个生成器,那么就是一个可迭代对象,可以通过for来循环print(i)。所以在python中,可以很简单的把列表生成式的[ ]改成( )来改成generator,也可以通过更改函数中yield关键字来实现定义一个generator。

 

python之生成器(generator)

原文:https://www.cnblogs.com/fujinjie/p/13418656.html

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