位置: 编程技术 - 正文

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

  • 核定征收需要缴税吗
  • 怎么知道交不交印花税
  • 租房抵扣个税计算公式
  • 增值税专用发票可以开电子发票吗
  • 抄报未反写影响开票吗
  • 公司对供应商罚款合法吗
  • 商誉减值可以抵税吗
  • 统借统还资金管理办法
  • 小规模注销时盈余公积余额怎么处理
  • 销售中央空调并安装账务处理
  • 小规模纳税人一年不超过多少万
  • 补交关税增值税怎么做分录?
  • 离职补偿金如何计算
  • 股票内在价值计算公式中级财务管理
  • 一般纳税人证明在哪里打印
  • 电子发票无法预览怎么弄
  • 收获怎么理解
  • 待处理财产损益期末结转到哪里
  • 年初未分配利润计算公式
  • 预付款未收到发票如何做账
  • 投标保证金利息怎么做账
  • 本年利润有余额可以结账吗
  • 鸿蒙系统怎么设置桌面小组件
  • 劳务资质办理需要什么条件
  • 工程施工暂估成本的账务处理流程
  • 发票认证了但是没收到票怎么处理
  • 个体户要交哪些税怎么交
  • 土地使用税若干问题的补充规定
  • echarts高德地图自定义区域
  • 什么是实际成本计价
  • 中世纪城门
  • 顺流交易逆流交易区别
  • 固定资产折旧提完后只剩净残值
  • 微信小程序商城源码php
  • node .js
  • 使用spring框架,大概有哪些步骤
  • 信用减值损失在资产负债表中怎么表示
  • 企业进行清算
  • wordpress建立数据库错误
  • 应付职工薪酬如何确认
  • 小企业会计准则调整以前年度费用分录
  • 投标保证金退还时间是在什么文件的规定的
  • mongodb服务端默认的端口号是多少?
  • 应收账款的账务改为公司招待费用怎么做会计分录
  • 开票服务名称可以自己添加吗
  • 物业公司收取的电费怎么确认收入
  • sqlserver存储过程语法
  • 员工工资可以当进项税吗
  • 小规模增值税为负数怎么报税
  • 公对公转账在手机上怎么操作
  • 营改增后还有建筑业发票吗
  • 小规模纳税人进口货物增值税税率
  • 公司库存商品科目余额太大怎么办
  • 工程施工企业的会计科目如何设置
  • 资产季末值
  • 建账要求
  • 什么叫归集和分配
  • mysql保存命令
  • MYSQL数据库应用
  • Windows Server 2008系统10个意外惊喜
  • 不同的linux系统命令一样吗
  • win10rs2是哪个版本
  • 删除windows.old文件夹后 桌面没有了
  • linux virtio
  • win7系统谷歌浏览器错误代码a00a0017
  • linux计划任务每天九点
  • 跨域请求的三种方法
  • 创建一个批处理文件,其功能是在当前
  • android framework 框架层功能梳理
  • android开发范例实战宝典
  • 猫猫的游戏
  • jquery fadein不起作用
  • java script语言
  • 使用jquery计算li元素的个数
  • 安卓 旋转屏幕
  • 税务谈心谈话记录2021
  • 浦东税务15所
  • 建筑企业税务清算流程图
  • 如何填写财产申报表
  • 运输类增值税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设