位置: 编程技术 - 正文

详解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简单实现刷新智联简历

  • 报税显示缺少组件怎么办
  • 期初未缴税额是什么意思
  • 营业税金及附加怎么计提
  • 夏天单位发防暑物品的通知
  • 留抵税额下月抵扣的分录
  • 结转上月库存商品余额会计分录
  • 所得税的账务处理流程
  • 残保金计算包括五险一金吗
  • 差旅费企业所得税扣除
  • 单独计价入账的土地是无形资产吗
  • 其他应收款通俗
  • 企业进口应税物资在进口环节应交的消费税,应计入
  • 雇主责任险税前列支
  • 七月一号出台的什么政策
  • 地方教育附加费是什么意思
  • 河北省东光县是哪个城市
  • 已认证的发票开红字红发要去税局吗
  • 合伙企业分配比例税法规定
  • 广告费发票收到但是不抵扣怎么做账?
  • 开出技术服务费怎么结转成本
  • 土地契税及印花税缴纳规定
  • 股权转让怎么办理才合理
  • 劳务挂靠需要开票吗
  • 增值税普通发票和电子普通发票的区别
  • 行政事业单位往来票据使用范围
  • 员工垫付公司钱怎么入账
  • mac怎么打印文件内容
  • macbook无限输入z
  • 招待费审批流程
  • 存出保证金计入资产负债表什么项目
  • w10控制中心在哪
  • incognito.exe
  • 固定资产入账流程图
  • 补充养老保险的特点
  • 西西弗书店主管级
  • php 解析
  • aws documentation
  • php中单双引号的区别
  • php页面跳转可以用header
  • php源码封装
  • mysql查找重复项
  • vim8.2插件
  • 小型微利企业符合条件的有
  • 提取企业所得税怎么做会计科目
  • 公司购买理财产品
  • 报销借款分录怎么做
  • 深入解读何暮楚
  • 报销加油费怎么做账
  • 政府无偿划转股权印花税
  • 公司如何帮员工补缴社保
  • 怎么登记现金日记账和银行存款日记账
  • sql server2014教程
  • 信用减值损失和资产减值损失的区别
  • 不得从销项税额中抵扣的进项税额,不得计提加计抵减额
  • 资源税会计科目
  • 以前年度的银行流水可以补进来做账嘛
  • 向投资者分配现金股利的会计分录?
  • 航天信息服务费发票哪里打印
  • 发票红冲重新开具怎么做分录
  • 商品流通企业如何控成本
  • SQL Server 2016 CTP2.3 的关键特性总结
  • macos怎么操作
  • mssecsvc是什么进程
  • 误删windows
  • 红石id
  • win7怎么看磁盘
  • 联想 恢复
  • win10无法启动diagnostic policy service
  • ugui scrollview
  • ubuntu搭建ss
  • portainer集群管理
  • cocos2d开发app
  • jquery选择指定标签
  • content provider
  • shell批处理脚本
  • Python函数中仅允许有一条return语句
  • jquery移动div
  • aiclod
  • 股权转让和大宗转让区别
  • 工商注册app是不是在手机上可以完全操作
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设