当前位置:首页 > 芯闻号 > 充电吧
[导读]迭代器 迭代是Python最强大的功能之一,是访问集合元素的一种方式。 迭代器是一个可以记住遍历的位置的对象。 迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退

迭代器

迭代是Python最强大的功能之一,是访问集合元素的一种方式。

迭代器是一个可以记住遍历的位置的对象。

迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。

迭代器有两个基本的方法:iter() 和 next()。

字符串,列表或元组对象都可用于创建迭代器:

迭代器对象可以使用常规for语句进行遍历:

执行以上程序,输出结果如下:

也可以使用 next() 函数:

执行以上程序,输出结果如下:

创建一个迭代器

把一个类作为一个迭代器使用需要在类中实现两个方法 __iter__() 与 __next__() 。

如果你已经了解的面向对象编程,就知道类都有一个构造函数,Python 的构造函数为 __init__(), 它会在对象初始化的时候执行。

__iter__() 方法返回一个特殊的迭代器对象, 这个迭代器对象实现了 __next__() 方法并通过 StopIteration 异常标识迭代的完成。

__next__() 方法(Python 2 里是 next())会返回下一个迭代器对象。

创建一个返回数字的迭代器,初始值为 1,逐步递增 1:

执行输出结果为:

StopIteration

StopIteration 异常用于标识迭代的完成,防止出现无限循环的情况,在 __next__() 方法中我们可以设置在完成指定循环次数后触发 StopIteration 异常来结束迭代。

在 20 次迭代后停止执行:

执行输出结果为:

生成器

在 Python 中,使用了 yield 的函数被称为生成器(generator)。

跟普通函数不同的是,生成器是一个返回迭代器的函数,只能用于迭代操作,更简单点理解生成器就是一个迭代器。

在调用生成器运行的过程中,每次遇到 yield 时函数会暂停并保存当前所有的运行信息,返回 yield 的值, 并在下一次执行 next() 方法时从当前位置继续运行。

调用一个生成器函数,返回的是一个迭代器对象。

以下实例使用 yield 实现斐波那契数列:

执行以上程序,输出结果如下:

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

根据调研机构Forrester在2023年进行的一项有关云计算基础设施的调查,在接受调查的1300名企业云决策者中,79%的受访者表示他们的组织正在部署或采用私有云。

关键字: 生成式AI 私有云 AI 云计算

在越来越多的企业采用AI技术的推动下,亚马逊、微软和谷歌三大云计算巨头2024年开局表现强劲。

关键字: 云计算 微软 谷歌 亚马逊

业内消息,上周谷歌公司解雇了28名员工,原因是这些员工在谷歌纽约和加州森尼维尔的办公室静坐10小时,抗议谷歌与以色列签订的价值12亿美元的云计算合同。

关键字: 云计算 谷歌

西门子中国和亚马逊云科技双方高层在西门子中国北京总部会晤,双方宣布签署战略合作协议,共同成立"联合创新团队"。基于亚马逊云科技在生成式AI领域的领先技术和服务,并结合西门子在工业领域的深厚积累和经验,联合创新团队将深入探...

关键字: 生成式AI 云计算 人工智能

随着信息技术的飞速发展,云计算作为一种新兴的计算模式,正在逐步改变着传统的数据处理和应用方式。云计算通过整合大量分布式计算资源,为用户提供高效、灵活、安全的数据存储和计算服务。在当前数字化、网络化、智能化的时代背景下,云...

关键字: 云计算 数据处理 智能化

Arm Neoverse 旨在为从云到边缘的全场景基础设施用例提供高性能和出色能效。针对需要更高性能的工作负载和用例,Arm 推出了 Neoverse V 系列。其中,Neoverse V2 核心已被行业先行者广泛部署于...

关键字: 云计算 人工智能 CPU

3月22日,OPPO与京东举行战略合作协议签约仪式,双方确立未来三年OPPO在京东全渠道实现销售额同比增长100%的目标。此次签约双方将基于多年良好的合作基础,聚焦产品、营销、服务、渠道四大维度深化战略合作,通过发挥各自...

关键字: 人工智能 云计算 AI大模型

随着互联网的迅猛发展,百度、阿里巴巴、腾讯等互联网巨头逐渐崭露头角,成为了行业的领军者。这些公司在云计算、大数据、人工智能等领域积累了丰富的经验和技术实力,为开发者提供了丰富的服务和工具。在这样的背景下,BAT模块应运而...

关键字: 互联网 云计算 大数据

科技点亮未来,创新驱动发展。随着科技创新的步伐日益加快,2024年将迎来新一轮的突破,有望从根本上重塑整个世界的生活、互动和交流方式。是德科技紧跟技术创新与行业发展动向,于近期发布了2024主要技术趋势预测,内容涵盖云计...

关键字: 云计算 6G AI

科技点亮未来,创新驱动发展。随着科技创新的步伐日益加快,2024年将迎来新一轮的突破,有望从根本上重塑整个世界的生活、互动和交流方式。是德科技紧跟技术创新与行业发展动向,于近期发布了2024主要技术趋势预测,内容涵盖云计...

关键字: 云计算 6G AI
关闭
关闭