zoukankan      html  css  js  c++  java
  • 迭代器

    为什么要用迭代器?

    优点:

    1,迭代器提供了一种不依赖于索引的取值方式。这样就可以便利,那些没有索引的可迭代对象了。       

       如:字典,集合,文件,列表,元组。

    2,迭代器与列表比较,迭代器是惰性计算的,更省内存。

     缺点:

    1:无法获取迭代器的长度,使用不如列表,索引取值灵活。

    2,一次性的,不能重复取值,不能倒着取值。

    Iterator迭代器,与Iterable 可迭代的

    Iterable:只要是可迭代的对象,就有.__iter__方法。

    Iterator: 通过.__iter__() 这个方法,得到的结构,转换成成迭代器

    查看是否迭代器,Iterator,有2种方法

    1,name.__next__,查看是否有next方法,取下一个值。

    2,print(isinstance(s,Iterator))

    迭代器的优点:

    1.提供了一种统一的迭代对象的方法,不依赖于索引

    2.惰性计算。

    缺点:

    1,无法获取迭代器的长度。

    2,一次性的。只能往后取值,不能往前退。不能像索引那样去取得某个位置的值。

    凡是可以for循环的,都是Iterable

    凡是可以next()的,都是Iterator

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

    Python中的for循环就是通过next实现的。

    http://blog.csdn.net/passionkk/article/details/49929887

  • 相关阅读:
    TCP粘包的拆包处理
    字节序列化
    同步,异步,阻塞和非阻塞
    用Doxygen生成文档
    Visual Studio新建的源文件的默认编码
    Boost编程之获取可执行文件的当前路径
    特征点寻找的基础数据结构和函数
    寻找Harris、Shi-Tomasi和亚像素角点
    特征点的基本概念和如何找到它们
    工业相机与普通相机的差别
  • 原文地址:https://www.cnblogs.com/catherine007/p/8302208.html
Copyright © 2011-2022 走看看