位置: 编程技术 - 正文

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
  • 税金及附加主要分析
  • 下列不属于流动资产的
  • 火车票丢失可以抵扣进项税额
  • 原材料作废品处理方法
  • 购买房产怎么确认收入
  • 工地工资是人走账清吗
  • 申请国家知识产权的条件
  • 简易计税是否可以开增值税专用发票
  • 建筑业企业包括哪些企业
  • 新成立的公司季报
  • 年度中期是几月份
  • 第二年缴纳税控盘服务费入什么科目?
  • 空调维修详情介绍
  • 免费WiFi万能钥匙
  • 付临时工工资计入什么科目
  • 关联企业需要计提坏账
  • php 用户和密码
  • uniapp小程序自定义tabbar在iOS手机上太高了
  • 收到人才引进已受理的短信
  • 保险公司报销工伤手续需要哪些手续
  • 母公司向子公司注入资产
  • 增值税价外费用怎么算
  • 没报关的货物还需要开发票嘛
  • php中execute
  • 现金折扣成本变动额
  • 转让旧固定资产怎么做账
  • 集团与子公司资产的关系
  • 万字短文
  • 公司企业名称变更,银行账号会变吗
  • 水利建设基金按季度缴纳
  • php如何实现登录和注册
  • 基于Python实现五大常用分类算法(原理+代码)
  • thinkphp ide
  • 前端向后端传递对象数组
  • yolov3图像识别
  • pytorch广播相乘
  • nmblookup安装
  • 报表中库存商品怎么填
  • 货物名称和发票上的不一致
  • 预付工程款如何结算
  • 研发支出可以计提吗
  • access中宏的操作
  • 未按期兑现的合同缴纳印花税吗?
  • 个税申报系统累计收入怎么算
  • 开公司抬头的发票需要提供什么
  • 融资租入的固定资产视为自有固定资产
  • Linux编译mssql扩展使用php连接sqlserver2008的使用步骤
  • mysql 5.5 5.6 5.7
  • 会计从业资格证取消了吗
  • 投资性房地产转为非投资性房地产
  • 公司库存商品科目余额太大怎么办
  • 增值税专用发票丢了怎么补救
  • 预收账款余额在贷方是什么意思
  • 营业外支出增加说明了什么
  • 新建公司需要什么
  • xp系统和2003系统的异同
  • win7系统连接VPN失败时提示错误代码721的故障分析及解决方法
  • winlogon是什么意思
  • 简述linux系统有什么优点
  • 跑跑3s是谁
  • cocos2dx官方教程
  • 快速掌握一个方法
  • pycharm怎么学
  • jqgrid获取选中行
  • 详谈左晖
  • android开源项目在哪找
  • jQuery Mobile弹出框
  • python中导入语句
  • python记录运行状态的模块
  • jquery.js插件
  • javascript gui
  • 重庆市网上税务局官网
  • 北京地税电话咨询
  • 广东政务平台网上办事大厅
  • 南京地税局上班时间
  • 公共基础设施项目所得税优惠目录
  • 国税申报作废怎么操作
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设