Python的基础知识之迭代器

Posted

tags:

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

参考技术A 迭代:按照一定的顺序访问集合中的每一个元素,或者叫遍历(其他语言叫做遍历);

可迭代对象(Iterable):能被迭代的对象,或者说直接作用于for循环的对象,可以通过for..in来遍历的对象,比如数组(list)、元祖(tuple)字符串等;

迭代器(Iterator):能作用于next() 函数,并不断返回下一个值的对象称为迭代器,是惰性计算的序列(很重要)

1、判断一个对象是可迭代对象呢?方法是通过collections模块的Iterable类型判断

2、判断一个对象是否是迭代器Iterator对象

3、可迭代对象Iterable转化为迭代器对象Iterator

4、使用迭代器迭代

1、迭代器的特性
A.惰性计算数据,节省内存
B.能记录状态,并通过next()函数执行下一个状态
C.具有可迭代性

2、集合数据类型如list、dict、str、tuple等是可迭代对象Iterable但不是迭代器Iterator,不过可以通过iter()函数转化为一个Iterator对象

原因:Iterator对象表示的是一个数据流,Iterator对象可以被next()函数调用并不断返回下一个数据,直到没有数据时抛出StopIteration错误。Iterator对象表示一个无限大的数据,集合是有限集合,假如被next()到最后就是没有返回直接carsh

3、生成器(generator)一定是迭代器,他是一种特殊的迭代器;

如果想了解更多Python知识,请查看
Python的基础知识之生成器
Python的基础知识之装饰器

学无止境,学习Python的伙伴可以多多交流。

Python基础之迭代器

参考技术A

一.什么是迭代器

迭代器是用来迭代取值的工具。

而涉及到把多个值循环取出来的类型有:列表,字符串,元组,字段,集合,打开文件等。通过使用的遍历方式有for···in···,while等,但是,这些方式只适用于有索引的数据类型。为了解决索引取的局限性,python提供了一种 不依赖于索引的取值方式:迭代器

注意:

二.可迭代对象

可迭代对象:但凡内置有__iter__方法的都称为可迭代对象

常见的可迭代对象:

1.集合数据类型,如list,tuple,dict,set,str等

2.生成器,包括生成器和带yield的生成器函数。

三.如何创建迭代器

迭代器是一个包含数个值的对象。

迭代器是可以迭代的对象,这意味着您可以遍历所有值。

从技术上讲,在Python中,迭代器是实现迭代器协议的对象,该协议由方法 __iter__() 和 __next__() 组成。

简而言之,一个类里面实现了__iter__()和__next__()这两个魔法方法,那么这个类的对象就是可迭代对象。

四.迭代器的优缺点

1.优点

2.缺点

五.迭代器示例

另外,如果类Stu继承了Iterator,那么Stu可以不用实现__iter__()方法

遍历迭代器

StopIteration

如果你有足够的 next() 语句,或者在 for 循环中使用,则上面的例子将永远进行下去。

为了防止迭代永远进行,我们可以使用 StopIteration 语句。

在 __next__() 方法中,如果迭代完成指定的次数,我们可以添加一个终止条件来引发错误

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

Python高手之路python基础之迭代器与生成器

Python基础之迭代器

python基础之迭代器协议和生成器

python基础之三大器中迭代器和生成器

Python开发第五篇:Python基础之迭代器生成器

饮冰三年-人工智能-Python-16Python基础之迭代器生成器装饰器