• 可迭代对象、迭代器、生成器


    名词解释:

    • 迭代:            迭代是访问集合元素的一种方式,可以将某个数据集内的数据“一个挨着一个的取出来”,就叫做迭代
    • 可迭代协议: 协议就是互相规定好的。可迭代协议的定义非常简单,就是内部实现了 __iter__方法。
    • 迭代器协议:  迭代器协议:必须拥有__iter__方法和__next__方法
    • 可以通过dir(对象)查看是否实现了__iter__,__next__等方法来判断对象是否为迭代器
    • 也可以使用 isinstance(Iterator)来判断

    可迭代对象:

      1、遵循了(实现了)迭代器协议的对象。(对象内部定义了一个__iter__()方法,以实现迭代器协议)  

      2、列表、元组、字典、字符串等等的都不是可迭代对象,当用for循环遍历的时候,其实for先去执行了.__iter__()方法,将列表、元组、字符串等变成一个可迭代的对象,在进行迭代。(__iter__()下有__next__()方法!)

    迭代器:

      1、拥有__iter__方法和__next__方法的对象就是迭代器

    生成器generator:  

      1、生成器函数:常规函数定义,但是,使用yield语句而不是return语句返回结果。yield语句一次返回一个结果,在每个结果中间,挂起函数的状态,以便下次重它离开的地方继续执行

      2、生成器表达式:类似于列表推导,但是,生成器返回按需产生结果的一个对象,而不是一次构建一个结果列表,按需取出对象(使用括号代替方括号即可

  • 相关阅读:
    Codeforces Round #625 (Div. 2, based on Technocup 2020 Final Round)(A-C题解)
    最小生成树
    并查集
    字符串的匹配算法
    CTU Open Contest 2019 AB题
    Codeforces Round #624 (Div. 3)(题解)
    Educational Codeforces Round 53 (Rated for Div. 2) (前五题题解)
    Lyft Level 5 Challenge 2018
    终于在博客写完第一篇题解啦
    Codeforces Round #519 by Botan Investments(前五题题解)
  • 原文地址:https://www.cnblogs.com/kkkboshow/p/11628064.html
Copyright © 2020-2023  润新知