Python-迭代器Iterator学习笔记

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/deng1456694385/article/details/87119394

Python-迭代器Iterator学习笔记

我们已知的可以迭代的值包括,基本数据类型如listtupledictsetstr等,和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

因为listdictstr等数据类型,不能使用next()方法所以不是迭代器,但是可以通过iter()方法将其变成迭代器

>>> isinstance(iter([]), Iterator)
True
>>> isinstance(iter('abc'), Iterator)
True

用途

Iterator最主要的用途,就在于Iterator是惰性的,在没有用到那个值,时不进行计算存储,节省内存且可以用来存储一个无限大的数据流

猜你喜欢

转载自blog.csdn.net/deng1456694385/article/details/87119394