zoukankan      html  css  js  c++  java
  • python基础-迭代器

    1.迭代:指的是一个重复的过程,每一次重复称为一次迭代,并且每一次重复的结果

                  是下一次重复的初始值

    2.为什么要有迭代器

          对于序列类型:str list tuple 可以依赖索引来迭代取值,但是对于dict,set,文件

          python必须为我们提供一种不依赖于索引的迭代取值的方式》》》迭代器

    3.可迭代的对象:有 obj.__iter__方法

       a='asdd'
    b=[1,2,3,4,5]
    c=(1,2,3,4)
    d={'aa':'bb','aac':'vvc'}
    f=open('a.txt','w',encoding='utf-8')
    a.__iter__
    b.__iter__
    c.__iter__
    d.__iter__
    f.__iter__

    4.迭代器对象:obj.__iter__   ,  obj.__next__   同时拥有这两个方法,只有文件是

          f.__iter__

          f.__next__

    总结:1.可迭代对象不一定是迭代器对象,2.迭代器对象一定是可迭代对象

               3.调用obj.__iter__()方法得到的是迭代器对象(对于迭代器对象执行__iter__得到的仍然是它本身)

                  len()等同于obj.__len__()     iter    和 next同理

    5.for循环详解:1.调用in后边的对象.__iter__()方法拿到迭代器对象2.执行next()方法3.捕捉StopIteration异常,结束迭代

    优点:提供一种统一的、不依赖于索引的取值方式,为for循环的实现提供了依据

               迭代器同一时间在内存中只存在一个值》》》》更节省内存

    缺点:只能往后去,并且是一次性的

              不能统计值得个数,即长度

  • 相关阅读:
    iOS开发UI篇—控制器的View的创建
    iOS开发UI篇—控制器的创建
    OS开发UI篇—UIWindow简单介绍
    iOS开发UI篇—使用storyboard创建导航控制器以及控制器的生命周期
    A1089. Insert or Merge
    A1044. Shopping in Mars
    A1010. Radix
    A1085. Perfect Sequence
    散列、贪心总结
    A1038. Recover the Smallest Number
  • 原文地址:https://www.cnblogs.com/lixiaoting/p/12015036.html
Copyright © 2011-2022 走看看