迭代器

作者: qianranow | 来源:发表于2018-04-23 05:50 被阅读42次

    0. 概念


    • 迭代

      1. 访问集合元素的一种方式
      2. 按照某种顺序逐个访问集合中的每一项
      
    • 可迭代对象

      1. 能够被迭代的对象
      2. 判定依据:能作用于 for in
      3. 判定方法:import collections
                 isinstance(obj, collections.Iterable)
      
    • 迭代器

      1. 从第一个元素开始,往后通过 next() 函数,进行遍历
      2. 只能往后,不能往前
      3. 可以记录遍历位置
      4. 判定依据:能作用于 next() 函数
      5. 判定方法:import collections
                 isinstance(obj, collection.Iterator)
      
    • 注意:迭代器也是 可迭代对象,所以也可以作用于 for in

      迭代器.png

    1. 简单使用


    • next() 函数
      # 使用 next() 函数,从迭代器中取出下一个对象,从第 1 个元素开始  
      l = [1, 3, 5, 7, 9]
      it = iter(l)
      print(next(it))
      print(next(it))
      print(next(it))
      
    • for in
      l = [1, 3, 5, 7, 9]
      it = iter(l)
      for v in it:
          print(v)
      
    • 注意
      1. 如果取出完毕,再继续取,则会报错
      2. 迭代器一般不能多次迭代
      

    2. 特性


    • 节省内存
      1. 仅仅在迭代到某个元素时才处理该元素
      2. 在此之前,元素可以不存在
      3. 在此之后,元素可以被销毁
      4. 特别适合用于遍历一些巨大的或是无限的集合
      
    • 统一接口
      1. 可以把所有的可迭代对象,转换成迭代器进行使用
      2. iter(Iterable)
      

    相关文章

      网友评论

          本文标题:迭代器

          本文链接:https://www.haomeiwen.com/subject/xbxklftx.html