位置: 编程技术 - 正文

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

  • 快递费包不包括送货上门
  • 怎么计提固定资产折旧科目
  • 房开企业预售阶段预交的税费
  • 增值税发票的品名与报关单不一致
  • 个体户城市维护建设税减免性质
  • 发生采购业务无合同需要缴印花税吗
  • 税务申报我的待办是空的
  • 预收款转营业外收入条件
  • 结转损益管理费用在借方
  • 收购发票怎么做凭证
  • 公司员工出差发工资吗
  • 小企业营业外支出
  • 营改增通知及有关部门规定的税收优惠政策
  • 转出未交增值税怎么算
  • 汽车配件的税收编码是多少
  • 航天信息服务费的会计分录
  • 公司的企业所得税和个人所得税
  • 房地产公司靠什么赚钱
  • 个税经营所得预扣预缴
  • 结转实物发放的成本分录
  • 小规模纳税人出售使用过的汽车
  • 折扣折让的账务处理
  • 进项发票已入账抵扣后开负数红冲怎么处理
  • 网络销售平台优势有哪些
  • 工会收到单位拨款怎么办
  • 什么叫电鳗鱼
  • 企业计提的坏帐会计分录
  • win10一段时间不动黑屏
  • 事业单位坏账准备的计提方法
  • 凤尾蕨的养殖方法
  • 股票交易税怎么算出来的
  • npfmntor.exe - npfmntor是什么进程 有什么用
  • PHP:pcntl_wifexited()的用法_PCNTL函数
  • Laravel 5.5官方推荐的Nginx配置学习教程
  • 翡翠湾攻略
  • 管理费用属于产品成本项目的费用吗
  • php管理员权限控制
  • 《linux内核分析》
  • php访问sqlserver
  • 说好的运费少给怎么办
  • 超过离线开票限定时间怎么办
  • sqlsever无法连接到服务器
  • python文件可分为哪几类
  • 上期金额是本年累计金额吗
  • 待摊费用和预提费用都属于资产类科目
  • 进项转出的原因是什么
  • 结转增值税的账务处理一定要通过转出未交增值税吗
  • 坏账准备计提标准
  • 工厂没给工人买社保我们应该找哪个部门
  • 固定资产折旧方法一经确定不得随意变更
  • 营业外支出会影响所有者权益吗
  • 交易性金融资产的账务处理
  • 代理返利
  • 投资收益下期间怎么结转
  • 客户到我公司签字怎么说
  • 私营企业固定资产法律制度
  • Windows 2008 R2的C盘空间不够的解决方法
  • win10的ubuntu
  • linuxvlc安装
  • winload是什么
  • 滑动关闭电脑功能按键在哪找
  • ubuntu怎么刷新桌面
  • windows 查看补丁
  • macbook新手
  • 红帽企业版更新了吗
  • Windows Update XP SP3官方下载地址
  • linux必学的60个命令及使用
  • windows7旗舰版怎样扩大虚拟内存
  • opengl cullface
  • 快速解决胃胀气
  • ExtJS 2.0实用简明教程 之获得ExtJS
  • opencv python
  • 英语中our和my的区别
  • Unity3D游戏开发基础
  • js onkeypress与onkeydown 事件区别详细说明
  • javascript入门基础
  • JavaScript Length 属性的总结
  • python列出所有文件名
  • 郑州市惠济区税务局黄国选
  • 请问报考国家税务局难吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设