首页 > 编程语言 > 详细

python初识生成器 迭代器

时间:2016-05-29 06:21:48      阅读:261      评论:0      收藏:0      [点我收藏+]

生成器

带有 yield 的函数在 Python 中被称之为 generator(生成器)

 

def xragns():     #定义函数生成器
    print(小伙)
    yield ()    #加上yield就会生成一个生成器

    print(python)
    yield(hao)

    print(编程)
    yield(hao)

x = xragns()       #执行函数生代器仅仅是获得内部不会执行
ret = x.__next__()  #生成器的next方法才会向下执行 执行函数寻找下一个yield
print(ret)
ret = x.__next__()  #第二次执行会回到上次跳出的位置想下执行
print(ret)
ret = x.__next__()
print(ret)

迭代器

迭代器是访问集合元素的一种方式。迭代器对象从集合的第一个元素开始访问,知道所有的元素被访问完结束。迭代器只能往前不能后退

ef xrange(n):    #定义一个函数
    start = 0
    while True:   #while循环
        if start > n:  #判断如果值小于n
            return
        yield start    #生成器退出
        start += 1    #每循环到这都加一

for i in xrange(10):    #迭代器
    print(i)

obj = xrange(5)     #执行函数,这个时候内部不会执行生成器
n1 = obj.__next__()  #生成器从上向下执行知道遇到的第一个yield
n2 = obj.__next__()  #生成器会回到上次跳出的位置继续回去循环
n3 = obj.__next__()  # 依次想下执行
n4 = obj.__next__()
n5 = obj.__next__()
n6 = obj.__next__()
n7 = obj.__next__()
print(n1,n2,n3,n4,n5,n6)  #输出所有的结果
#

 

python初识生成器 迭代器

原文:http://www.cnblogs.com/guokaixin/p/5538817.html

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