Python基础之迭代器
一.什么是迭代器
迭代器是用来迭代取值的工具。
而涉及到把多个值循环取出来的类型有:列表,字符串,元组,字段,集合,打开文件等。通过使用的遍历方式有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__() 方法中,如果迭代完成指定的次数,我们可以添加一个终止条件来引发错误