美文网首页
Python中的可迭代对象和迭代器对象

Python中的可迭代对象和迭代器对象

作者: 我有一只碗 | 来源:发表于2017-07-25 20:31 被阅读0次

Python中的可迭代对象和迭代器对象是两种不同的东西,可迭代对象是Iterable,迭代器对象是Iterator

>>> from collections import Iterator
>>> from collections import Iterable
>>> l = [1, 2, 3]
>>> s = 'abc'
>>> isinstance(l, Iterable)
True
>>> isinstance(s, Iterable)
True
>>> isinstance(l, Iterator)
False
>>> isinstance(s, Iterator)
False

查看list类和str类,里面有一个_iter_方法

>>> l_i = l.__iter__()
>>> s_i = s.__iter__()
>>> isinstance(l_i, Iterator)
True
>>> isinstance(s_i, Iterator)
True

通过_iter_产生的对象进行next

>>> next(l_i)
1
>>> next(l_i)
2
>>> next(l_i)
3
>>> next(l_i)
Traceback (most recent call last):
  File "<input>", line 1, in <module>
StopIteration

这与用for进行迭代比较发现结果相同,所以for的内部执行逻辑就是先调用对象的_iter_方法,然后一直进行next直到抛出StopIteration

相关文章

  • Python中的可迭代对象和迭代器对象

    Python中的可迭代对象和迭代器对象是两种不同的东西,可迭代对象是Iterable,迭代器对象是Iterator...

  • 生成器与迭代器

    一:可迭代对象(Iterable) 1、什么叫可迭代对象? 2、python中那些是可迭代对象 二:迭代器(Ite...

  • Python基础-16生成器-迭代器

    16.生成器-迭代器     可循环迭代的对象称为可迭代对象,迭代器和生成器函数是可迭代对象,在Python中提供...

  • Python12--迭代器

    1.迭代器 要理解迭代器,首先需要明白迭代器和可迭代对象的区别。一个一个读取、操作对象称为迭代,Python 中,...

  • 迭代器和生成器 (Iterator & Generator)

    迭代器 迭代器对象要求支持迭代器协议的对象,在Python中,支持迭代器协议就是实现对象的__iter__()和n...

  • Python中的迭代器和生成器

    今天我们来学习下Python中的迭代器和生成器。 迭代和可迭代对象 在学习迭代器之前,我们需要了解下迭代和可迭代对...

  • Python进阶——什么是迭代器?

    Python进阶——什么是迭代器? 在 Python 开发中,我们经常听到有关「容器」、「迭代器」、「可迭代对象」...

  • Python进阶 - 高性能计算之协程

    迭代器 可迭代对象 什么是可迭代对象 可迭代对象就是对象的类中实现了__iter__方法的对象。对于可迭代对象,可...

  • [笔记]可迭代对象、迭代器、生成器

    为了更深入一点理解可迭代对象和迭代器,读了几篇不错的文章: Python实践18-可迭代对象和迭代器 - 曾月天的...

  • 17.Python之迭代器

    Python之迭代器 可迭代对象内部含有__iter__方法的对象,称之为可迭代对象。 通过dir()获取一个对象...

网友评论

      本文标题:Python中的可迭代对象和迭代器对象

      本文链接:https://www.haomeiwen.com/subject/zisgkxtx.html