zoukankan      html  css  js  c++  java
  • 迭代器 ,可迭代对象 ,迭代器对象,for循环的本质

    迭代器
    迭代:更新换代(重复)的过程,每次的迭代都必须基于上一次的结果
    迭代器:迭代取值的工具

    迭代器给你提供了一种不依赖于索引取值的方式

    需要迭代取值的数据类型有:字符串 列表 元祖 字典 集合

    可迭代对象 :只有内置有__iter__方法的都叫做可迭代对象

    基本数据类型中 是可迭代对象的有:str list tuple dict set  文件对象(执行内置的__iter__之后还是本身 没有变化):文件对象本身就是迭代器对象

    迭代器对象
    1.内置有__iter__方法
    2.内置有__next__方法

    ps:迭代器一定是可迭代对象  二可迭代对象不一定是迭代器对象

    迭代器对象无论执行多少次__iter__方法的到的还是迭代器对象本身

    迭代器取值的特点 只能往后依次取,不能后退

    for循环的本质

    for循环内部的本质 

    1 讲in后面的对象调用__iter__转换成迭代器对象

    2 调用__iter__迭代取值

    3 内部有异常捕获StopIteration,当__next__报错 自动结束循环

    可迭代对象:内置有__iter__方法的

    迭代器对象:既内置有__iter__也内置有__next__方法

    迭代取值:

      优点:1不依赖于索引取值

        2 内存中永远只占一份空间,不会导致内存溢出

      缺点:1 不能够获取指定的元素

        2取玩之后会报StopIteration错

  • 相关阅读:
    构造方法
    $this
    public/private/protected三种访问控制符的区别
    vsftpd的虚拟主机配置,错误记录
    高斯模糊css
    css绘制三角形
    禁止缩放的一行代码
    自适应的Javascript代码resize.js
    判断是pc端还是手机端js
    倒计时
  • 原文地址:https://www.cnblogs.com/wkq0220/p/11190224.html
Copyright © 2011-2022 走看看