位置: 编程技术 - 正文

Python 迭代器与生成器实例详解(python迭代器iterator)

发布时间:2024-02-27

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

文章相关热门搜索词:python 迭代器与生成器的区别,python迭代器iterator,python迭代器的好处,python迭代器iterator,Python迭代器与生成器,python 迭代器与生成器的区别,python 迭代器与生成器的区别,Python迭代器与生成器,内容如对您有帮助,希望把文章链接给更多的朋友!

Python 迭代器与生成器实例详解

一、如何实现可迭代对象和迭代器对象

1.由可迭代对象得到迭代器对象

例如l就是可迭代对象,iter(l)是迭代器对象

# 下面这种直接调用函数的方法如果数据量大的时候会对网络IO要求比较高,可以采用迭代器的方法

实现一个迭代器对象WeatherIterator,next 方法每次返回一个城市气温

实现一个可迭代对象WeatherIterable,iter方法返回一个迭代器对象

二、使用生成器函数实现可迭代对象

1.实现一个可迭代对象的类,它能迭代出给定范围内所有素数

素数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数的数称为素数。

一个带有 yield 的函数就是一个 generator,它和普通函数不同,生成一个 generator 看起来像函数调用,但不会执行任何函数代码,直到对其调用 next()(在 for 循环中会自动调用 next())才开始执行。虽然执行流程仍按函数的流程执行,但每执行到一个 yield 语句就会中断,并返回一个迭代值,下次执行时从 yield 的下一个语句继续执行。看起来就好像一个函数在正常执行的过程中被 yield 中断了数次,每次中断都会通过 yield 返回当前的迭代值。

三、实现反向迭代

1.反向进行迭代

Python 迭代器与生成器实例详解(python迭代器iterator)

例如: 实现一个浮点数发生器FloatRange(和xrange类似),根据给定范围(start, end)和步径值(step)产生一系列连续浮点数,如迭代FloatRange(3.0,4.0,0.2)可产生序列:

正向: 3.0 -> 3.2 -> 3.4 -> 3.6 -> 3.8 -> 4.0

反向: 4.0 -> 3.8 -> 3.6 -> 3.4 -> 3.2 -> 3.0

上面代码采用round函数是因为浮点数比较会有精度问题,所以需要进行四舍五入

2.对迭代器进行切片操作

例如: 有某个文本文件,想读取其中某范围的内容,如-行之间的内容,python中文本文件是可迭代对象,是否可以使用类似列表切片的方式得到一个-行文件内容的生成器

使用标准库中的itertools.islice,它能返回一个迭代对象切片的生成器

四、 迭代多个对象

1.在一个for语句中迭代多个可迭代对象

1、某班学生考试成绩语文、数学、英语分别存储在3个列表中,同时迭代三个列表,计算三个学生的总分(并行)

2、某年级四个班,某次考试每班英语成绩分别存储在4个列表中,依次迭代每个列表,统计全学年英语成绩高于分人数(串行)

解决方案:

并行: 使用内置函数zip,它能将多个可迭代对象合并,每次迭代返回一个元组

串行: 使用标准库中的itertools.chain,它能将多个可迭代对象连接

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Python操作MongoDB详解及实例 Python操作MongoDB详解及实例由于需要在页面展示MongoDB库里的数据,所以考虑使用python操作MongoDB,PyMongo模块是Python对MongoDB操作的接口包,所以首页安装pym

Python实现的文本简单可逆加密算法示例 本文实例讲述了Python实现的文本简单可逆加密算法。分享给大家供大家参考,具体如下:其实很简单,就是把一段文本每个字符都通过某种方式改变(

Python使用time模块实现指定时间触发器示例 本文实例讲述了Python使用time模块实现指定时间触发器。分享给大家供大家参考,具体如下:其实很简单,指定某个时间让脚本处理一个事件,比如说一

标签: python迭代器iterator

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

上一篇:Python字符串处理实例详解(python字符串处理为年月日)

下一篇:Python操作MongoDB详解及实例(python操作微信自动发消息)

  • 民间非盈利组织会计中所拥有的用于
  • 补提企业所得税怎么做账
  • 销售人员购买的产品
  • 工会费缴纳基数
  • 普通发票申请表怎么填写
  • 统借统还资金管理办法
  • 企业股权转让收入申报表填哪里
  • 电费应收电费和实际电费
  • 计提坏账的递延税收
  • 发生检测费用时怎么入账
  • 资本公积转增股本什么意思
  • 摊销房租账务处理
  • 亏损弥补额的年数如何计算?
  • 营改增后进项税相关规定
  • 收了公司的款项不拿回公司属于什么行为
  • 财务费用应计入什么账户
  • 计提长期借款利息会计分录
  • 负债清偿损益明细表可以0报么
  • 税务登记证遗失了怎么注销
  • 期间费用率计算方式
  • 车辆保险返点计算器
  • 公司职员培训与管理
  • 股权转让相关手续
  • 收到银行承兑汇票后,如何取钱
  • php中数组的概念
  • win7系统网络连接出现红叉
  • 商场充值卡发票在哪开
  • 招财树的养殖方法
  • PHP:time_nanosleep()的用法_misc函数
  • PHP:pg_escape_literal()的用法_PostgreSQL函数
  • 如何安装iis网站服务器
  • php 代码
  • php调用sql server存储过程
  • token过期处理
  • 准公益性企业
  • 奥卡万戈三角洲位置
  • php 反代
  • phpforeach
  • php curl 封装
  • 帝国cms首页怎么打开
  • 长期股权投资核算的成本法与权益法的主要差别有哪些
  • 超简单的土法自制水泥
  • 商业会计与财务会计的相同
  • 个人独资企业法主要内容
  • 政府补助的范围
  • 销售成品油的税率
  • 现金日记账的登记证据有
  • 汇总记账凭证会计核算形式下总分类账账页格式一般采用
  • 亏损企业所得税汇算清缴后调减
  • 一般性企业
  • 空调安装开发票
  • 描述企业会计准则中对固定资产的具体规定
  • 残保金是公司交还是员工交
  • 购买软件会计科目
  • 管理会计与核算会计的区别
  • xp如何给文件夹加密码
  • wp8.0升级8.1
  • win8系统怎么设置密码
  • macbook qq截图存在哪
  • xp系统组策略怎么打开
  • win8自动启动项怎么设置
  • win7 64位旗舰版下载后怎样禁用搜索记录?win7禁用搜索记录的设置方法
  • nodejs webp
  • python提供三种基本数值类型
  • js特殊字符有哪些
  • 狗刨好学吗
  • js实现css样式
  • c# /n
  • javascript怎么学
  • 英特尔在哪打开
  • android开发程序
  • jquery技巧
  • 使用二氧化碳灭火器时人应该站在什么位置
  • jquery判断checkbox是否选中及改变checkbox状态的实现方法
  • 上饶县国税局局长名单
  • 江苏地税个税申报时间表
  • 个税汇算清缴申报方式选哪个
  • 房产税税源编号
  • 云票助手怎么查看开票限额
  • 营业税纳税申报时间
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号