位置: 编程技术 - 正文

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

  • 纳税人异地预缴税款
  • 什么是非居民纳税人类别
  • 委托加工应税消费品收回后直接销售
  • 中级税务师是什么
  • 一般纳税人可以开1%的发票吗
  • 成本税率计算公式
  • 融资租赁手续费如何入账
  • 股权投资基金账户有监管吗
  • 哪些合同不需要缴纳印花税的通知
  • 上个月的进项发票可以这个月勾选吗
  • 用盈余公积弥补亏损会影响所有者权益吗
  • 购电子承兑汇票差额计入什么科目?
  • 预付款对应的会计科目
  • 物业管理提供的服务变化
  • 房租费简易征收税率
  • 销售退回怎么开票
  • 公账的钱如何合法取出会计
  • 教育费附加税优惠
  • 预缴企业所得税是含税数还是不含税
  • 网络发票开具
  • 华硕笔记本电脑售后维修服务网点
  • PHP+jQuery+Ajax实现分页效果 jPaginate插件的应用
  • G40/50-70、SR1000随机Linux改安装Win7系统的实现方法
  • 广告费与业务宣传费范围
  • oracle win10
  • php批量发送邮件
  • 货运代理开票
  • linux服务有哪些
  • 存货的原材料分析
  • 自产商品公司自用算增值税吗
  • u-net优点
  • 感知机算法python
  • 大数据热点话题
  • promise基本使用
  • layui 树形
  • 合并报表少数股东权益抵消分录
  • 未来的现金流折现
  • 企业正常性停产什么意思
  • 没有收入该怎么办
  • 营业外收入汇算清缴时需要调增吗
  • 固定资产会计上与税法上提折旧时间
  • 收到的加盟费要交税吗
  • 员工购买口罩会计科目
  • 企业注销清算报告模板
  • 以后年度结转如何结转
  • 代开租金发票的税金怎样入账?
  • 企业亏损净资产降低吗
  • 公司的房租发票怎么开
  • 本期已认证且不抵扣怎么申报
  • 企业暂估入账的税务风险
  • 甲方扣水电费施工方是否开票
  • 自产产品与视同自产产品
  • 财务费用包括哪些费用
  • 发票丢失了怎么报销
  • MySQL下载安装视频
  • sql server发布
  • mac系统怎么创建文件
  • solaris 2020
  • 盗版win10可以用win10商店吗
  • winxp打开任务管理器的快捷键
  • centos配ip的方法
  • win10一年更新一次
  • pcalc是什么软件
  • kmswin7激活步骤
  • linux服务器安全配置
  • require注解
  • linux执行sh文件报错找不到
  • python迭代器的作用
  • node返回html
  • 支付宝是怎么写
  • 安卓apk混淆工具
  • unity3d官方
  • 深入浅析是什么意思
  • EasyTouch Broadcast messages选项在js和c#下的用法
  • python文件文件夹操作
  • 快速解决偏头痛的6个方法
  • swift协议范型
  • 设计费需要交税吗
  • 江苏税务个税查询
  • 利润表研发费用项目应根据管理费用
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设