迭代器迭代是Python最强大的功能之一,它是访问集合元素的一种方式。迭代器是一个可以记住遍历位置的对象。从集合的第一个元素访问迭代器对象,直到所有元素都被访问为止。迭代器只能前进,而不能后退。迭代器有两种基本方法:iter()和next()。字符串,列表或元组对象可用于创建迭代器:可以使用常规for语句遍历迭代器对象:执行上述程序,输出如下:您还可以使用next()函数:执行上述程序,输出如下:要创建一个迭代器以将类用作迭代器,需要在该类中实现__iter __()和__next __()两个方法。如果您已经了解了面向对象的编程,那么您就知道一个类具有一个构造函数。 Python的构造函数是__init __(),它将在初始化对象时执行。 __iter __()方法返回一个特殊的迭代器对象,该对象实现__next __()方法并使用StopIteration异常来标识迭代的完成。 __next __()方法(Python 2中为next())返回下一个迭代器对象。创建一个返回数字的迭代器,初始值为1,并逐渐增加1:执行输出结果为:StopIterationStopIteration该异常用于标识迭代的完成并防止无限循环。在__next __()方法中,我们可以在完成时设置它。指定循环数后,将触发StopIteration以结束迭代。在20次迭代后停止执行:执行输出为:generator在Python中,使用yield的函数称为generator。与普通函数不同,生成器是一个返回迭代器的函数,只能用于迭代操作。更容易理解生成器是迭代器。在调用生成器运行的过程中,该函数将在每次遇到yield时暂停并保存所有当前运行信息,返回yield的值,并在下次执行next()方法时从当前位置继续运行。调用生成器函数将返回迭代器对象。下面的示例使用yield来实现斐波那契数列:执行上面的程序,输出结果如下: