位置: 编程技术 - 正文

python中实现迭代器(iterator)的方法示例(python迭代算法举例)

编辑:rootadmin

推荐整理分享python中实现迭代器(iterator)的方法示例(python迭代算法举例),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:迭代 python,python中的迭代法,python迭代语句,迭代 python,python迭代算法举例,迭代 python,python中的迭代法,python迭代算法举例,内容如对您有帮助,希望把文章链接给更多的朋友!

概述

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

延迟计算或惰性求值 (Lazy evaluation)

迭代器不要求你事先准备好整个迭代过程中所有的元素。仅仅是在迭代至某个元素时才计算该元素,而在这之前或之后,元素可以不存在或者被销毁。这个特点使得它特别适合用于遍历一些巨大的或是无限的集合。

今天创建了一个实体类,大致如下:

然后创建一个实体列表:

我想要执行next()功能,也就是需要的时候“next”一下,得到List中的下一个元素。

直接测试一下:

结果发现List不支持next()特性。这时候,List只是一个iterable,而不是iterator。

python中实现迭代器(iterator)的方法示例(python迭代算法举例)

iterable和iterator的区别如下:

iterable —— 只实现了__iter__的对象; iterator —— 同时实现了__iter__和__next__方法的对象。

其中, __iter__返回iterator对象, __next__则返回迭代过程的下一个元素。

1. 让列表成为iterator

要让前面的accounts List成为iterator只需简单的一个iter()函数:

结果如下图所示:

这么简单的函数,估计还是有不少Python开发者不知道吧?

2. 自定义iterator对象

扩展开来讲,如何定义自己的iterator对象呢?其实也就是按照上面的定义,实现__iter__和__next__方法。

我们接下来定义一个AccountIterator类:

运行结果如:

通过这一阵折腾,next()功能就实现了。Python有不少意外的功能,还等着我们不断去探究,也许这就是Python的魅力及极客之处。

总结

标签: python迭代算法举例

本文链接地址:https://www.jiuchutong.com/biancheng/381332.html 转载请保留说明!

上一篇:Python正则替换字符串函数re.sub用法示例(python正则批量替换字符串)

下一篇:python django 访问静态文件出现404或500错误(python访问地址)

  • 往年有亏损本年没有亏损
  • 增值税专用发票电子版
  • 月度税率表和综合所得税率表区别
  • 车间人员负担的工会经费
  • 小企业会计准则2023电子版
  • 小微企业条件2018
  • 岗位津贴和岗位补贴
  • 累计赡养老人专项扣除6000
  • 应收分保合同准备材料
  • 冲销管理费用如何计算
  • 加权平均净资产收益率反映什么
  • 应付职工薪酬包括个税吗
  • 企业注销合适还是转让出去合适
  • 哪些可用商业汇票结算?
  • 分公司背书给总公司
  • 营改增开始试点到普及的行业
  • 待摊费用核算的内容主要包括
  • 花店怎么做会计工作
  • 应收账款出售给银行
  • 是否所有监控设备都录像
  • 以股权增资的税费怎么算
  • 3070和3070ti性能差多少
  • 在edge浏览器中打开农行K宝
  • 如何从Windows 10注销其他用户
  • 资本公积和盈余公积都是从企业的净利润中提取的
  • 买一个金蝶软件年费多少
  • 未分配利润分配利润分录
  • 如何用腾讯电脑管家删除文件
  • 财务软件的摊销额计入管理费用
  • php的数组函数
  • 安装win7系统的硬件要求
  • 应收账款挂账多年
  • php图片库
  • 向股东借款支付利息划算还是做工资划算
  • 巴黎拉丁区有个著名的人文景点叫做先贤祠
  • javaweb学生信息管理系统idea
  • 工业企业制造费用包括
  • vue router怎么传值
  • php array_product
  • 计提租金怎么做会计分录
  • 个体工商户建账办法最新
  • 公司减持股份是利好还是利空
  • 帝国cms建站教程
  • dedecmsv6
  • 滞纳金是
  • 上季度忘记申报个税了
  • 农民工工资专户管理暂行办法
  • 工厂加工外包
  • sql join 语句
  • 淘宝开店的钱怎么取出来
  • 固定资产提取折旧最新规定
  • 装修费用是当月支付吗
  • 应收账款周转率计算公式
  • 车辆购置税可以退税吗
  • 费用报销冲抵借支
  • 独立核算好处
  • 小规模企业能否消化13点增值税普通发票
  • 新办企业是不是企业
  • 收到红字发票进项税怎么做账务处理
  • 收到转账支票怎么填
  • 帐簿凭证的管理方法
  • linux系统中
  • Windows 10 与 MySQL 5.5 安装使用及免安装使用详细教程(图文)
  • windows蓝屏代码大全及解决方案
  • 苹果电脑mac设备怎么删除
  • 进程 com surrogate
  • WIN7如何关闭自动关机
  • win10系统admin和oobe
  • win10安装vc++6.0
  • node modules干嘛的
  • 浅析学校德育的个体智能发展功能
  • unity3d音效
  • 通过Tabs方法基于easyUI+bootstrap制作工作站
  • jquery选择器包含哪几大类
  • python 聚类算法包
  • 关于全局变量和局部变量说法不正确的是
  • python算法怎么用
  • jquery 获取屏幕高度
  • 信用体系建设
  • 购置税周天上班吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设