zoukankan      html  css  js  c++  java
  • python 迭代器/生成器/迭代对象

    生成器: 带有yield的函数

    迭代器:带有next 方法的对象,可以作为内建函数next的参数

    迭代对象:带有__iter__方法的对象,__iter__方法返回迭代器

    -----------------------------------------------

    迭代对象可以用for遍历

    生成器是一种迭代器,生成器可以通过send方法与调用方双向沟通

    迭代对象和迭代器的联系是:可以对迭代对象使用iter()方法来生成迭代器

    ----------------------------------------------

    总结:

    1.迭代器一定是迭代对象,迭代对象不一定是迭代器

    2.生成器一定是迭代器,迭代器不一定是生成器

    3.使用for...in...来遍历迭代对象是最常用的方式

    ------------------------------------------------------------

    例如: python2里的xrange,python3里的range   是迭代对象,但不是迭代器,其__iter__返回一个生成器

    所以不可以next(range(5)), 但是可以 next(iter(range(5)))

  • 相关阅读:
    Pipe
    An Easy Problem?!
    Kadj Squares
    Space Ant
    Intersection
    让网页变为可编辑状态
    typescript入门基础
    大家都能看懂的 canvas基础教程
    数组的foreach方法和jQuery中的each方法
    html单行、多行文本溢出隐藏
  • 原文地址:https://www.cnblogs.com/mhc-fly/p/8524749.html
Copyright © 2011-2022 走看看