位置: 编程技术 - 正文

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访问地址)

  • 物业公司增值税加计扣除
  • 偷税行为五年后被发现要接受行政处罚吗?
  • 分派现金股利需要缴税吗
  • 工程结算扣罚款怎么开票
  • 购买厨房用品属于什么费用
  • 政府发放的人才补贴,企业可以增加条款要求离职返还吗
  • 分公司的税收机关在总公司还是分公司
  • 借款应付利息计算
  • 减免货款需要进项税额转出吗
  • 废品材料回收价格
  • 进口关税专用缴款书在哪里打印
  • 公司购买的矿泉水属于什么科目
  • 哪些营业外支出要调增
  • 工程发票没写经办人没写可以吗
  • a公司拟吸收合并b公司除一项无形资产吗
  • 小规模纳税人开具增值税专用发票
  • 请问给员工报销怎么报
  • 资产损益表怎么看
  • 工商年度报表怎么打印出来
  • 办公室出租中介公司
  • 子公司代发母公司人员工资
  • 上市公司企业股东转让股份交什么税费
  • 开业庆典礼仪费计入什么科目?
  • 怎样处理教育费附加会计分录?
  • 产品配件属于什么会计科目
  • 你肯定不知道的11个狗狗冷知识
  • 应收账款平均余额怎么理解
  • 农业生产用水水资源税
  • 收到空头支票解释怎么写
  • 公司名下汽车过户给个人
  • 公司收入没有进项税额
  • 贷款减值损失计提还能转回吗
  • element分页器
  • 收到银行汇票怎么背书
  • 小规模纳税人查询
  • 如何修改家里的wifi密码
  • 前端项目部署到nginx
  • lincom命令
  • 提前开具发票怎么做账
  • 其他应付款个人在贷方表示什么
  • 合并报表的会计主体
  • 详解帝国cms图集大全
  • 增值税普票可以开给个人吗
  • 出口退税单机版是什么意思
  • 签三方协议需要法人本人去吗
  • 不动产集体产权证什么意思
  • 差额征税可以开专票抵扣吗
  • 税额四舍五入的差额0.03怎么调整
  • 现金存银行会有记录吗
  • 教育行业税收优势分析
  • 一般纳税人无票收入填在哪一栏
  • 进项税额不允许抵扣
  • 利息收入的会计科目
  • 微众银行的企业贷款好批吗
  • 合同里包括产品和服务吗
  • 银行回单模板
  • 业务招待算什么费用
  • 提供加工劳务计入什么科目
  • 总公司中标走子公司账户违法吗
  • 提前还贷款要满十八岁吗
  • 银行业现金流量表
  • 固定资产清理账户借方的核算内容包括
  • 删除mysql数据库命令
  • sql server的数据库
  • mysql的行转列
  • win7旗舰版系统重装
  • redhat 7.0
  • ubuntu系统安装程序
  • wps文字打印不清楚怎么办
  • zui哪个版本最好
  • windows7找不到无线
  • linux内核命名
  • opengl纹理错误变成条纹
  • javascript编写
  • 批处理查找字符中含有等号的子串
  • jquery发送json
  • jquery访问本地html
  • 电子普票最多领多少
  • 发票汇总表怎么计算
  • 日本快递税率
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设