位置: 编程技术 - 正文

详解Python迭代和迭代器(python中迭代例子)

编辑:rootadmin

推荐整理分享详解Python迭代和迭代器(python中迭代例子),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:python迭代器详解,python的迭代,python迭代算法举例,python的迭代,python迭代算法举例,python迭代算法举例,python中什么叫迭代,python中的迭代法,内容如对您有帮助,希望把文章链接给更多的朋友!

我们将要来学习python的重要概念迭代和迭代器,通过简单实用的例子如列表迭代器和xrange。

可迭代

一个对象,物理或者虚拟存储的序列。list,tuple,strins,dicttionary,set以及生成器对象都是可迭代的,整型数是不可迭代的。如果你不确定哪个可迭代哪个不可以,你需要用python内建的iter()来帮忙。

iter()为list返回了listiterator对象,为dictionary返回了dictionary-keyiterator对象。类似对其他可迭代类型也会返回迭代器对象。

iter()用在自定义的类型会怎样呢?我们先自己定义一个String类:

那么,st是可迭代的吗?

你可能会有几个问题要问:

怎么让自定义的类型可迭代?iter()究竟做了些什么?让我们补充String类来找找答案

在String类中需要一个'__iter__'方法把String类型变成可迭代的,这就是说'iter'内部调用了'iterable.__iter__()'

别急,不是只有增加'__iter()'方法这一种途径

‘itr'也会调用'iterable.__getitem__()',所以我们用'__getitem__'方法让String类型可迭代。

如果在String类中同时使用'__iter__()'和'__getitem__()',就只有'__iter__'会起作用。

自动迭代

for循环会自动迭代

我们可以不用for循环来实现吗?

这样做对list和string是管用的,但对dictionary不会奏效,所以这绝对不是python式的迭代,也肯定不能模拟for循环的功能。我们先看迭代器,等下回再过头来。

详解Python迭代和迭代器(python中迭代例子)

迭代器

关于迭代器先说几条………..

1. 迭代器对象在迭代过程中会会产生可迭代的值,`next()`或者`__next()__`是迭代器用来产生下一个值的方法。2. 它会在迭代结束后发出StopIteration异常。3. `iter()`函数返回迭代器对象4. 如果`iter()`函数被用在迭代器对象,它会返回对象本身我们试一试模仿for循环

前面我们看过了iterable类,我们知道iter会返回迭代器对象。

现在我们试着理解迭代器类的设计。

我们学了够多的迭代和迭代器,在python程序中不会用到比这更深的了。

但是为了学习的目的我们就到这儿。。。。

列表迭代器

你可能会在面试中写这个,所以打起精神来注意了

我们来用`list_iter`自己定义一个列表迭代器

xrange

从一个问题开始——xrange是迭代还是迭代器?

我们来看看

几个关键点:

1. `iter(xrange(num))`应该被支持2. 如果`iter(xrange(num))`返回同样的对象(xrange类型)那xrange就是迭代器3. 如果`iter(xrange(num))`返回一个迭代器对象那xrange就是迭代

它返回了rangeiterator,所以我们完全可以叫它迭代器。

让我们用最少的xrange函数实现自己的xrange

xrange_iterator

my xrange

标签: python中迭代例子

本文链接地址:https://www.jiuchutong.com/biancheng/384412.html 转载请保留说明!

上一篇:Python读大数据txt(python读取大txt文件)

下一篇:python简单实现刷新智联简历

  • 企业所得税是什么意思
  • 一般纳税人缴纳税款
  • 研发设备的折旧费计入研发费吗
  • 车船税每年都要交吗,一般是多少钱交强险可以晚交吗
  • 如何开银行卡账户
  • 设备5年直线法计提折旧怎么做
  • 年报从业人数可以填一人吗
  • 视同销售但未收到钱怎么做账
  • 小微企业第一季度不符合条件怎么处理
  • 资产总计是期初余额吗
  • 小型制造型企业有哪些
  • 留底税款
  • 国外客户手续费差异账务处理如何做?
  • 固定资产常用计算公式
  • 土地价值是否计入GDP
  • 雇主责任险能否证明劳动关系
  • 收到去年所得税退款直接记入营业外收入吗
  • 会计累计折旧属于什么科目
  • 免税收入的财税处理
  • 不动产测绘费谁交
  • 经营范围外的业务可以开发票吗
  • 当期的费用
  • 抵扣发票勾选到哪个科目
  • 企业报税的详细流程期限为
  • 冲失业保险分录怎么做
  • 货代发票税率是多少
  • 银行承兑汇票保证金是什么意思
  • windows10如何开热点
  • 未担保余值的账户怎么查
  • win11怎么安装CAD2008
  • 工作流activity
  • PHP:pg_convert()的用法_PostgreSQL函数
  • 销售费用中业务费包括哪些
  • thinkphp5.0框架
  • php 封装
  • 金税盘减免税款留抵
  • php判断字符串是否包含字母
  • 织梦前台的菜单怎么换
  • 日主题ripro v8.1破解版(修复缓存器功能)
  • 织梦如何使用
  • el-form表单
  • 材料采购与原材料账户核算内容有何差别
  • 在Windows平台上不属于命令ar-d的作用是
  • 房产出租税率是多少
  • 存货增加使经营活动现金净流量减少该怎么办
  • 固定资产错记到费用了怎么办
  • 五险一金没有金
  • 业务招待费专用会计科目
  • 出售捐赠物资
  • 发票拿到了怎样作废
  • 增值税出口退税款缴纳企业所得税吗
  • 公司收到个人转账收入
  • 法人投资属于什么会计科目
  • 小规模纳税人所得税优惠政策2023
  • 长期挂账其他应付款
  • 存款利息收入是否缴纳增值税
  • 房屋装修费用的会计科目
  • sql not in 与not exists使用中的细微差别
  • 阿拉伯数字转大写函数
  • win8系统没有无线网络连接
  • 虚拟机ubuntu20.04
  • xp系统乱了,怎么恢复
  • Win7注册表怎么恢复
  • Mac系统中pr插件汉化
  • win7系统安装虚拟机
  • centos7.5安装桌面
  • mcshield.exe是什么进程
  • win7任务栏透明调不了
  • win7怎么设置u盘启动为第一启动项
  • windows7看视频黑屏
  • opengl 旋转矩阵
  • cocos2dx android横屏竖屏设置
  • javascript中数组
  • js表达式语法大全
  • 中间件 .net
  • 浅谈python要进行房价预测的优点和缺点
  • unity里面如何删除一个项目
  • jquery获取当前对象
  • 开源安卓app
  • 使用SQLite数据库保存和处理数据
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设