Python迭代器和生成器介绍

638次阅读  |  发布于5年以前

迭代器

迭代器是一个实现了迭代器协议的对象,Python中的迭代器协议就是有next方法的对象会前进到下一结果,而在一系列结果的末尾是,则会引发StopIteration。

在for循环中,Python将自动调用工厂函数iter()获得迭代器,自动调用next()获取元素,还完成了检查StopIteration异常的工作。

常用的几个内建数据结构tuple、list、set、dict都支持迭代器,字符串也可以使用迭代操作。

你也可以自己实现一个迭代器,如上所述,只需要在类的iter方法中返回一个对象,这个对象拥有一个next()方法,这个方法能在恰当的时候抛出StopIteration异常即可。但是需要自己实现迭代器的时候不多,即使需要,使用生成器会更轻松。

复制代码 代码如下:

!/usr/bin/env python

coding=utf-8

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