本篇文章841字,读完约2分钟
迭代程序
迭代是python最强大的功能之一,也是访问集合元素的一种方式。
迭代器是一个可以记住遍历位置的对象。
迭代器对象从集合的第一个元素开始访问,直到所有元素都被访问。迭代器只能向前移动,不能向后移动。
迭代器有两种基本方法:iter()和next()。
字符串、列表或元组对象可用于创建迭代器:
可以使用正则for语句遍历迭代器对象:
执行上述程序,输出结果如下:
您也可以使用next()函数:
执行上述程序,输出结果如下:
创建迭代器
使用类作为迭代器需要在类中实现两个方法_ _ ITER _ _ _()和_ _ next _ _ _)。
如果你已经知道面向对象编程,你就知道所有的类都有一个构造函数。python的构造函数是__init__(),它将在对象初始化时执行。
_ _ ITER _ _ _()方法返回一个特殊的迭代器对象,该对象实现_ _ next _ _ _()方法,并通过stopiteration异常标记迭代的完成。
_ _ next _ _ _()方法(python 2中的next()方法)返回下一个迭代器对象。
创建一个迭代器,返回一个数字,初始值为1,并逐渐增加1:
执行输出结果是:
停止迭代
stopiteration异常用于标识迭代的完成并防止无限循环。在__next__()方法中,我们可以将stopiteration异常设置为在指定数量的循环完成后触发,以结束迭代。
20次迭代后停止执行:
执行输出结果是:
发电机
在python中,使用产量的函数称为生成器。
与普通函数不同,生成器是一个返回迭代器的函数,它只能用于迭代操作。更简单的理解是,生成器是一个迭代器。
在调用生成器运行的过程中,每次遇到yield时,函数都会暂停并保存当前所有的运行信息,返回yield的值,并在执行下一个()方法时从当前位置继续运行。
调用生成器函数将返回一个迭代器对象。
以下示例使用收益率来实现斐波那契数列:
执行上述程序,输出结果如下:
来源:搜狐微门户
标题:云计算开发学习笔记:Python3迭代器与生成器
地址:http://www.shwmhw.com/shxw/12692.html