位置: 编程技术 - 正文

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年享受六税两费减免吗
  • 福利费的进项税额会计分录
  • 零申报公司注销麻烦吗
  • 非营利组织注销流程
  • 以前年度损益调整结转到哪里
  • 增值税零申报附加税费情况表没发保存
  • 银行商业承兑汇票到期怎么兑现
  • 跨月专用发票怎么冲销
  • 房地产简易征收可以开专用发票吗
  • 公司买车可以抵扣哪些税
  • 取得保险赔偿的会计分录
  • 捐赠利得会计分录
  • 同一个客户有应收也有应付怎么办
  • 冲减以前年度多计的管理费用分录
  • 公司购入汽车应交什么税
  • 新三板公司股东人数
  • 哪些项目可以免征个人所得税
  • 房地产停车场属于公共配套设施吗
  • 一般纳税人出售不动产增值税税率是多少
  • 公司注销后股东承担责任的法律规定
  • 不交社保一告一个准罚多少钱
  • 购买融资租赁资产
  • 计算所得税时扣除增值税附加怎么算
  • 广告公司怎么结转成本
  • 声卡无声音怎么回事
  • 资本成本的组成
  • 收不回的心
  • 关于幼儿园会没课程的会刊
  • mac桌面的文件夹怎么换到别的地方
  • 如何更改应用商店
  • 其他应付款转营业外收入需要交增值税吗
  • linux中的文件
  • 文竹怎么养才能更旺盛浇点醋
  • vue父组件引入子组件
  • wifi万能钥匙密码王
  • 转销盘盈会计分录
  • PHP:imagelayereffect()的用法_GD库图像处理函数
  • php pathinfo
  • javascript生成器
  • php创建视图
  • joomla模板制作教程
  • html5简单吗
  • 平常心下一句该怎么说
  • laravel中间件是什么意思
  • 低值易耗品五五摊销法怎么计算
  • 现金流量表哪些数据和资产负债表一致
  • 管理费用明细账余额累加吗
  • sqlserver数据表在哪里
  • mongodb项目使用说明
  • 购买加油卡需要什么证件
  • 消费税为什么是中央税还是地方税
  • 管理费用包括哪些部门
  • 委托开发费用
  • 债务重组的方式不包括债务转为资本
  • 企业技术服务费有税前列支限额吗
  • 土地需要摊销嘛?
  • Sqlserver聚集索引和非聚集索引的区别
  • macossierra安装发生错误
  • 政府禁用windows8
  • freebsd windows
  • windows7可以打开多个窗口
  • windows10秋季更新
  • macbookpro移到废纸篓快捷键
  • linux 网络配置
  • win8全屏快捷键
  • 怎么看win8还是win10
  • win8怎么下载qq
  • win8打不开咋办
  • win10输入法怎么添加美式键盘
  • win10系统日历怎么放在桌面
  • linux错误提示
  • perl删除文件夹
  • Android-ViewPager使用示例
  • python urljoin
  • 怎样用python
  • jquery动态添加的元素怎么添加事件
  • unity打开c#
  • 信用体系建设
  • 江苏社保缴费基数是什么意思
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设