迭代器Iterator

来源:互联网 发布:美工设计包括哪些 编辑:程序博客网 时间:2024/06/05 01:57

1、可迭代对象Iterable:能作用于for循环的

一类是数据集合类型:如:list、tuple、dict、set、str等

一类是生成器

可通过isinstance()函数判断是不是可迭代对象

>>> from collections import Iterable>>> isinstance([], Iterable)True>>> isinstance({}, Iterable)True>>> isinstance('abc', Iterable)True>>> isinstance((x for x in range(10)), Iterable)True>>> isinstance(100, Iterable)False
2、迭代器Iterator:可以被next()函数调用并不断返回下一个值的对象---惰性计算序列

生成器是一个迭代器对象

数据集合如list、dict、str可通过iter()函数获得一个迭代器对象


Python的Iterator对象表示的是一个数据流,Iterator对象可以被next()函数调用并不断返回下一个数据,直到没有数据时抛出StopIteration错误。可以把这个数据流看做是一个有序序列,但我们却不能提前知道序列的长度,只能不断通过next()函数实现按需计算下一个数据,所以Iterator的计算是惰性的,只有在需要返回下一个数据时它才会计算。


原创粉丝点击