首页 > 代码库 > 【代码学习】PYTHON 生成器
【代码学习】PYTHON 生成器
一、生成器
一遍循环一遍计算的机制,称为生成器
二、生成器的特点:
1、节约内存
2、迭代到下一次的调用时,所使用的参数都是第一次所保留下的,即是说,在整个所有函数调用的参数都是第一次所调用时保留的,而不是新创建的
三、创建方法
1、把列表生成式的[]改为()
#列表 L = [x*2 for x in range(5)] print L #生成器 G = (x*2 for x in range(5)) print G
以上代码运行结果
[0, 2, 4, 6, 8]
<generator object <genexpr> at 0x0000000002E40AF8>
2、yield 生成
yield 自动终止返回结果。
循环从终止的地方向下进行
def creatNum(): print ("----start----") i = 0 while i < 5: temp = yield i print(temp) i+= 1 #创建一个生成器对象 a = creatNum() #让对象开始执行,第一次从头开始执行,如果之前执行过,就从上一次停止的地方开始执行 next(a)
以上代码运行结果
----start---- >>> next(a) None 1 >>> next(a) None 2 >>> a.send("SQYY") SQYY 3 >>> next(a) None 4 >>>
四、补充:
send()
执行到yield时,gen函数作用暂时保存send发送过来的值
c.next()等价c.send(None)
【代码学习】PYTHON 生成器
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。