zoukankan      html  css  js  c++  java
  • 函数进阶-迭代器

    迭代器

    可以被next()函数调用并不断返回下一个值的对象称为迭代器:Iterator

    我们已知道,可以直接作用于 for 循环的数据类型有以下几种:

    一类是集合数据类型,如:list、tuple、dict、set、str等

    一类是generator ,包括生成器和 yield 的generator function。

    这些可以直接作用于for 循环的对象统称为可迭代对象:Iterable

    可以使用isinstance() 判断一个对象是否是 Iterable 对象:

     小结

    凡是可作用于 fo r 循环的对象都是 Iterable 类型;

    凡是可作用于 next() 函数的对象都是 Iterator 类型,它们表示一个惰性计算的序列;

    集合数据类型如 list、dict、str等是 Iterable 但不是 Iterator ,不过可以通过 iter() 函数获得一个 Iterator 对象。

    Python3的 for 循环本质上就是通过不断调用 next() 函数实现的,例如:

    fo x in [1,2,3,4,5]:

      pass

    实际上完全等价于:

    #首先获得Iterator 对象:

    it = iter([1,2,3,4,5])

    #循环:

    whil True:

      try:

        获得下一个值:

        x= next(it)

      except StopIteration

        #遇到StopIteration 就退出循环

          break

  • 相关阅读:
    学习进度条博客(软件工程)第一周
    随机产生30个两位数的四则运算(包括真分数的计算)
    构建之法阅读笔记01
    感想
    《构建之法》阅读笔记04
    团队冲刺第二天
    第八周学习进度条
    团队冲刺第一天
    第七周学习进度条
    课堂测试03
  • 原文地址:https://www.cnblogs.com/anzhangjun/p/8419654.html
Copyright © 2011-2022 走看看