zoukankan      html  css  js  c++  java
  • python初识生成器 迭代器

    生成器

    带有 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)  #输出所有的结果
    #
  • 相关阅读:
    【转】Ubuntu 20.04修改ip地址
    试用 Portable Allegro Serve
    看完了 Source Code
    Common Lisp 参数传递的几种形式
    Irony 一个 .NET 语言实现工具包
    PPT 技巧学习
    LISP 练习:quick sort
    关于 Business Rule Engine
    转换 PDF 格式为适合电纸书阅读的版本
    IIS 7 SMTP configuration
  • 原文地址:https://www.cnblogs.com/guokaixin/p/5538817.html
Copyright © 2011-2022 走看看