• 迭代器和迭代对象的详解与对比


    • 可迭代对象

      • 字面意思:对象?python中一切皆对象。一个实实在在存在的值,对象。

      • 可迭代?:更新迭代。重复的,循环的一个过程,更新迭代每次都有新的内容。可以进行循环更新的一个实实在在的值。

      • 专业角度:可迭代对象?内部含有__iter _方法的对象,可迭代对象。

      • 判断是不是可迭代对象:__iter in dir(对象)

        s1= 'fidsk'
        print('__iter__'indir(s1))
      • 优点:

        • 存储的数据直接能显示,比较直观

        • 拥有的方法比较多,操作比较方便

      • 缺点:

        • 占用内存。

        • 不能直接通过for循环,不能直接取值,(索引 k)除外

    • 迭代器:

      • 迭代器的定义

        • 字面意思:更新迭代,器:工具,可迭代更新的工具

        • 专业角度:内部含有 __inter _next 两个方法的对象就是迭代器

        • 可以判断是否是迭代器:_inter _nex 是不是在dir(对象)

      • 优点:

        • 节省内存:

      • 缺点

        • 速度慢

        • 不走回头路

      • 可迭代对象和迭代器的对比

        • 可迭代对象是一个操作方法比较多,比较直观,存储数据相对少(几百万个对象,8G内存是可以承受的)的一个数据集。

        • 当你侧重于对于数据可以灵活处理,并且内存空间足够,将数据集设置为可迭代对象是明确的选择。

        • 是一个非常节省内存,可以记录取值位置,可以直接通过循环+next方法取值,但是不直观,操作方法比较单一的数据集。

        • 当你的数据量过大,大到足以撑爆你的内存或者你以节省内存为首选因素时,将数据集设置为迭代器是一个不错的选择。(可参考为什么python把文件句柄设置成迭代器)。

  • 相关阅读:
    php对接java平台 sha256 加密 签名验证不过
    iframe里面表单提交后如何跳出iframe重定向到另一个页面
    composer update install require 三个命令的的别
    PHP RabbitMQ实现简单的延迟队列
    CentOS 7 RPM 离线安装 MySQL 8
    解决SSH连接Linux主机Broken pipe问题
    Oracle查询连接数
    Oracle SYSAUX 表空间减肥
    Oracle URL的几种写法
    Oracle查询和修改序列
  • 原文地址:https://www.cnblogs.com/he-qing-qing/p/10857487.html
Copyright © 2020-2023  润新知