位置: 编程技术 - 正文

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

  • 小规模纳税人企业所得税多少
  • 企业所得税的会计利润计算公式
  • 平台怎么搞
  • 代订机票被骗可以追回吗
  • 增资导致丧失控制权
  • 电子银行承兑汇票已承兑已锁定
  • 计提贷款损失准备金遵循以下原则
  • 短期借款超过一年未归还转到哪会计视野
  • 关于半年度净资产的公告
  • 给员工发中秋福利
  • 电子税务局一般纳税人申请流程
  • 主体资格的法律规定
  • 停车费要交税吗
  • 一般纳税人贸易公司每个月最低费用多少
  • 会议费需要什么资料
  • 个人开机械租赁发票需要什么
  • 企业单位名称变更说明
  • 免税的发票可以用来抵税吗
  • 预提成本的会计处理
  • bios设置密码有什么用
  • 生产企业提供售后服务
  • 无线路由器指示灯怎么才是正常
  • 0x80070035无法访问
  • PHP:oci_set_client_info()的用法_Oracle函数
  • 员工伙食费明细表
  • 如果电脑中毒了,航佳进销存还能使用吗
  • 成本核算怎么核算
  • php中session什么意思
  • Win10 Build 19044.1288累积更新补丁KB5006670(附更新修复内容汇总)
  • 文件上传之后返回一个文件路径怎么设置
  • php extract函数
  • 购入旧的固定资产的入账价值
  • 联想thinkpad l380yoga
  • html-css
  • el-switch右对齐
  • 建造师与建筑师的区别详解
  • php数组函数有哪些
  • 前端开发常见的兼容性问题
  • 前端程序员和后端程序员哪个工资高
  • 进入微信小程序
  • php框架基础教程
  • 企业所得税年报滞纳金从哪天开始算
  • 应付票据贴现是负债吗
  • 销售后返现怎么算
  • 资产减值损失属于营业外支出吗
  • 送货单需要跟在凭证后面吗
  • 留言板系统php
  • mongodb $sum
  • 库存盘点问题及改善对策
  • 定额税率举例子
  • 关于材料采购的通知
  • 企业所得税实施条例第22条
  • 利息收入应该怎么记账
  • 用友电子报表怎么生成
  • 物流企业发生的费用包括
  • 收到的发票怎么做分录
  • 住院发票能否用医保卡
  • 商品验收入库时怎么做账
  • 固定资产折旧如何计提
  • sql判断字段是否有某个值
  • ubuntu如何配置
  • 笔记本电脑bios更新
  • centos下netconfig 的安装方法
  • win8有几个版本
  • win10登陆界面怎么关闭
  • archlinux ip地址
  • 移动宽带解绑怎么办理
  • win8怎么关闭电脑
  • activex控件在哪设置
  • 好好了解 英文
  • jquery链式操作原理
  • 学dos有用吗
  • jQuery iScroll.js 移动端滚动条美化插件第1/5页
  • android studio安装过程中出现的问题
  • jquery日期选择器
  • js类库编写
  • android获取系统弹窗,自动点击
  • js验证码代码怎么写
  • android 数据库
  • 西安市经开区管委会官网
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设