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

  • 可迭代对象

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

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

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

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

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

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

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

    • 缺点:

      • 占用内存。

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

  • 迭代器:

    • 迭代器的定义

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

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

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

    • 优点:

      • 节省内存:

    • 缺点

      • 速度慢

      • 不走回头路

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

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

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

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

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

猜你喜欢

转载自www.cnblogs.com/he-qing-qing/p/10857487.html