位置: 编程技术 - 正文

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

  • 土地增值税要计增值税吗
  • 房地产开发企业预缴增值税
  • 金税三期的主要系统
  • 员工工资计入管理费用吗
  • 什么情况下要交土地出让金
  • 个税app显示退税已完成,怎么没收到钱呢???
  • 没有认证怎么办
  • 补发工资怎么补发
  • 价税分离合同印花税的计税依据怎么算
  • 税务机关和自然人属于平等主体吗
  • 自产商品用于在哪个科目
  • 贷款减值准备如何计提
  • 公司购买软件著作权
  • 小规模增值税征收条件
  • 工程承建方给予的工期奖励如何做账?
  • 售后回租有风险吗
  • 应付职工薪酬的账务处理
  • 机打发票多久可以作废
  • 职工福利费发票开票范围
  • 准予抵扣的进项税额有哪些
  • 其他应付款下的固定资产怎么报废
  • win11卓越性能模式
  • 如何清除苹果手机6s垃圾
  • 固定资产更新改造支出资本化
  • php数组函数 菜鸟
  • 酒店需要的原材料和包装费有哪些
  • 小规模纳税人结转损益会计分录
  • 债务重组收益的计算
  • php模板引擎语法
  • php cookie session
  • 固定资产已提完折旧后丢失怎么处理
  • json有几种基本结构
  • 查询命令的操作步骤
  • 收取的标书收入如何入账
  • 劳务费如何支付
  • 应收账款坏账准备计算表
  • 出售子公司股权不丧失控制权
  • 怎么调整利润分配
  • 公司地面硬化财务如何入账
  • 工业企业辅助生产设备
  • 单位购图书怎么入账
  • 其他收入工会经费是什么意思
  • 天猫的费用
  • 公司注销持股1%的股东需要他签字吗
  • 建筑企业的安全生产许可证由谁颁发
  • 不动产计提折旧时间
  • 加油预付卡发票新规定文件
  • 进项税额准予抵扣是什么意思
  • 餐饮打包盒 标准
  • 应收票据贷方余额
  • 工程施工与工程成本的区别
  • 合伙人工资薪金
  • 公账钱怎么取出
  • 存货周转率多少属正常范围
  • 什么叫归集和分配
  • mysql语句删除表
  • 用友t6运行特别慢
  • Freebsd7.0+Apache2.2+MySQL5+PHP5安装配置
  • 方正电脑升级
  • windows7 ie
  • winxp无法删除文件
  • window 80端口被占用
  • win10彻底恢复出厂设置
  • windows xp
  • win10改服务器
  • win10系统如何快速回到桌面
  • js随机抽取姓名
  • 怎么用javascript
  • 安卓开源部分叫什么
  • android如何导入文件
  • unity3d入门视频教程
  • framelayout布局
  • 在python中的用法
  • javascript详细介绍
  • Android-Canvas.drawText()详解
  • 惠州市国家税务局稽查局局长
  • 湖州市2020年最低生活保障
  • 进项税计提和上交会计分录
  • 潍坊市的职工医保多少钱
  • 定期定额个体工商户需要做账吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设