本篇文章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