• Python 迭代对象、迭代器


    1. Python中 一切皆对象

      只要对象内部 含有 --iter--方法 即为可迭代对象,可以使用 dir 方法查看该对象的所有方法。

      l1 = [1,2,3]
      '__iter__' in dir(li)	#True
      

      可迭代优点:

      1. 存储的数据能直接显示,比较直观
      2. 拥有的方法比较多,操作方便

      缺点:

      1. 占用内存。

      2. 可迭代对象不能直接取值 不能直接通过For 循环 (转换为迭代器后可以使用 内部转换)

    2. 迭代器

      迭代器的定义(字面意思):更新迭代,器:工具

      专业角度:内部含有 ‘iter'方法 并且含有 'next'的方法的对象就是迭代器。

      文件句柄 为 迭代器。

      可迭代对象 可以 转换为 迭代器

      s1 = 'panda'
      obj = iter(s1)	#转换为迭代器 == s1.__iter__
      print (next(obj))	#取迭代器值 
      

      迭代器优点:

      1. 节省内存。

      2. 惰性机制:next一次 取一个值 绝不多取

        迭代是数据处理的基石,扫描内存中放不下的数据集时,我们要找到一种获取数据项的方式,即按需一次获取一个数据项,这就是迭代器模式。

      迭代器缺点:

      1. 速度满
      2. 不走回头路

      可迭代对象与迭代器的对比:

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

      ​ 当你侧重于对数据可以灵活处理,并且内存足够,将数据集设置为可迭代对象。

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

      应用:当你的数据量 过大 ,大到足以超出内存 或者你以节省内存为首选因素时,将数据集设置为迭代器是一个不错的选择。

  • 相关阅读:
    IIS浏览显示目录
    图解NuGet的安装和使用
    未能找到类型或命名空间名称“DbContext”
    IIS报错:未将对象引用设置到对象的实例
    最新11位手机号正则表达式
    Sql Server连表查询字段为null
    sql server 表连接
    2019用卡提额攻略
    win10,7 80端口被占用的检测和解决方法
    SAP之RFC_READ_TABLE
  • 原文地址:https://www.cnblogs.com/pandaa/p/12035641.html
Copyright © 2020-2023  润新知