python迭代器

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python迭代器相关的知识,希望对你有一定的参考价值。

#说明:
        迭代器使用的是python 中的迭代器协议:即数据类型内部包含有__iter__()方法和__next()__方法。
        其中:实现上面两个方法的数据类型是一个迭代器,
                            只包含有__iter()__方法的数据类型是一个可迭代对象
        可迭代对象和迭代器的区别就在于是否实现了__next()__方法

        因此,可以说可迭代对象不一定是迭代器,但是迭代器一定是可迭代的对象。
        真正实现的迭代方法是__next__()方法,要自己创建迭代器对象,必须通过此方法实现数据的迭代。

#示例:
        class    one:
                def __iter__():pass
                def __next__():pass

        class two:
                def __iter__():pass

        one类是一个跌代器,two类是一个可迭代对象
        isinstance(one(),iterator)        True
        isinstance(one(),iterable)          True
        isinstance(two(),iterator)        False
        isinstance(two(),iterable)          True

#使用:
        使用方式与生成器类似
        使用迭代器不要求事先准备好整个迭代过程中的所有元素。迭代器仅仅在迭代到某个元素时才计算该元素,而在这之前或之后元素可以不存在或者被销毁。因此迭代器适合遍历一些数量巨大甚至无限的序列

以上是关于python迭代器的主要内容,如果未能解决你的问题,请参考以下文章

为啥我在这个 python 片段中得到 float 是不可迭代的? [复制]

python:可迭代对象,迭代器,生成器函数,生成器的解析举例代码说明

python:可迭代对象,迭代器,生成器函数,生成器的解析举例代码说明

python学习之-迭代器

python中迭代器(转)

Python概念之装饰器迭代器生成器