迭代器
迭代器是一个实现了迭代器协议的对象,Python中的迭代器协议就是有next方法的对象会前进到下一结果,而在一系列结果的末尾是,则会引发StopIteration。
在for循环中,Python将自动调用工厂函数iter()获得迭代器,自动调用next()获取元素,还完成了检查StopIteration异常的工作。
常用的几个内建数据结构tuple、list、set、dict都支持迭代器,字符串也可以使用迭代操作。
你也可以自己实现一个迭代器,如上所述,只需要在类的iter方法中返回一个对象,这个对象拥有一个next()方法,这个方法能在恰当的时候抛出StopIteration异常即可。但是需要自己实现迭代器的时候不多,即使需要,使用生成器会更轻松。
复制代码 代码如下:
class test:
def init(self, input_list):
self.list = input_list
self.i = 0
def __iter__(self):
return self
def next(self):
if self.i == len(self.list):
self.i = 0
raise StopIteration
self.i += 1
return self.list[self.i - 1]
Copyright© 2013-2020
All Rights Reserved 京ICP备2023019179号-8