迭代器和生成器
一、迭代器1.1迭代器是什么?迭代器是一个可以记住遍历的位置的对象,迭代器是任何实现了__next__()方法的对象,可以通过next(iteration)对其进行迭代,迭代结束时会抛出StopIteration异常
1.2迭代器有什么用?可以为python的容器类型生成迭代器,迭代器对象从容器的第一个元素开始访问,直到所有的元素被访问完结束,迭代器只能往前不会后退。python的容器类型包括列表、元组、字符串、字典、集合等等
1.3怎么使用迭代器通过迭代器两个基本的方法,iter()以及next(),可以对python的可迭代对象进行迭代。以列表为例:
当迭代到最后一个元素还没停止时则会报错:
4.自行定义迭代器自行把一个类作为一个迭代器使用需要在类中实现两个方法__iter__()与__next__(),其中__iter__()会返回迭代器本身,__next__()方法从迭代器返回下一项。如果没有其他项,则引发StopIteration异常,下面通过代码自己构造迭代器:
首先定义一个迭代器类:
classMyIterator:def__init__(self,max):self.max=maxdef__iter__(self):self.n=0returnselfdef__next__(self):ifself.n