首页 > 代码库 > Python——yield生成器
Python——yield生成器
1、对比range和xrange区别
>>> range(10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> xrange(10)
xrange(10)
xrange在迭代循环时创建
2、
yield生成器:
记住上一次操作,下次再执行时,继续执行
def func1():
yield 1
yield 2
yield 3
for i in func1():
print i
如果使用print的话,只会打印出1,后续的2和3不会显示。
使用yield时,每次循环调用到yield时,会暂停,然后再次调用时继续执行。从而会依次显示出1,2,3
xrange的实现如下所示:
def mrange(arg):
seed = 0
while True:
seed = seed + 1
if seed > arg:
return
else:
yield seed
for i in mrange(4):
print i
Python——yield生成器
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。