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:可迭代对象,迭代器,生成器函数,生成器的解析举例代码说明