码迷,mamicode.com
首页 > 编程语言 > 详细

Python——yield生成器

时间:2017-08-13 12:27:57      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:print   迭代   创建   das   ash   func   nbsp   使用   xrange   

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生成器

标签:print   迭代   创建   das   ash   func   nbsp   使用   xrange   

原文地址:http://www.cnblogs.com/zhaoxiaoyu/p/7351922.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!