版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/deng1456694385/article/details/87119394
Python-迭代器Iterator学习笔记
我们已知的可以迭代的值包括,基本数据类型如list
、tuple
、dict
、set
、str
等,和generator
,者皆通称为可迭代对象,即Iterable
,可以通过isinstance()
判断值是否是可迭代对象
>>> from collections import Iterable
>>> isinstance([], Iterable)
True
>>> isinstance({}, Iterable)
True
定义
而迭代器是指可以被for循环,且可以用next()
调用的值,我们也可以使用isinstance()
判断,是否是迭代器
>>> from collections import Iterator
>>> isinstance((x for x in range(10)), Iterator)
True
>>> isinstance([], Iterator)
False
>>> isinstance({}, Iterator)
False
>>> isinstance('abc', Iterator)
False
因为list
、dict
、str
等数据类型,不能使用next()
方法所以不是迭代器,但是可以通过iter()
方法将其变成迭代器
>>> isinstance(iter([]), Iterator)
True
>>> isinstance(iter('abc'), Iterator)
True
用途
Iterator
最主要的用途,就在于Iterator
是惰性的,在没有用到那个值,时不进行计算存储,节省内存且可以用来存储一个无限大的数据流