• Python学习之迭代器和生成器


    那么首先什么是迭代器和生成器呢?

    迭代器即迭代的工具,那么什么又是迭代呢?所谓迭代:迭代是一个重复的过程,每次重读即一次迭代,并且每次迭代的结果都是下一次迭代的初始值。例:

    l=[1,2,3]
    count=0
    while count < len(l): 
        print(l[count])
        count+=1

    重点:

      一、可迭代对象

        可迭代对象值得是内置有__iter__方法的对象,例:

    'hello'.__iter__
    (1,2,3).__iter__
    [1,2,3].__iter__

      二、迭代器对象

    可迭代对象执行__iter__()的到结果就是迭代器对象,迭代器对象既内置__iter__又__next__方法的对象。迭代器的使用,例:

    dic={'a':1,'b':2,'c':3}
    iter_dic=dic.__iter__() 
    
    print(iter_dic.__next__()) #等同于next(iter_dic)
    print(iter_dic.__next__()) #等同于next(iter_dic)
    print(iter_dic.__next__()) #等同于next(iter_dic)
    print(iter_dic.__next__()) #抛出异常StopIteration,或者说结束标志

      三、生成器

    所谓生成器:在 Python 中,使用了 yield 的函数被称为生成器(generator)。跟普通函数不同的是,生成器是一个返回迭代器的函数,只能用于迭代操作,更简单点理解生成器就是一个迭代器。在调用生成器运行的过程中,每次遇到 yield 时函数会暂停并保存当前所有的运行信息,返回 yield 的值, 并在下一次执行 next() 方法时从当前位置继续运行。调用一个生成器函数,返回的是一个迭代器对象。例:

    def func():
        print('====>first')
        yield 1
        print('====>second')
        yield 2
        print('====>third')
        yield 3
        print('====>end')
    g=func()
    print(g) 
  • 相关阅读:
    【HTML XHTML CSS基础教程(第6版)】笔记之CSS笔记(7~25章)
    【HTML XHTML CSS基础教程(第6版)】笔记之HTML XHTML笔记(1~6章)
    ASP.NET Ajax简单的无刷新分页
    ArrayList 、Vector 和 LinkedList 有什么区别?
    找工作的一些建议
    WorkSkill整理之 java用Scanner 类输入数组并打印
    PTE 准备之 Describe Image
    PTE 准备之 Repeat sentence
    WorkSkill 面试之 字节跳动一面
    与用户交互
  • 原文地址:https://www.cnblogs.com/liuzhaoling/p/9910356.html
Copyright © 2020-2023  润新知