位置: 编程技术 - 正文

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

编辑:rootadmin

推荐整理分享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操作微信自动发消息)

  • 房地产开发企业简易计税方法 可以扣除吗
  • 年初结转增值税社保如何做账
  • 研发人员的社保也要进入研发费用吗
  • 暂时没开发票的销项税需要做账吗
  • 煤炭企业生产成本包括
  • 外商投资企业土地使用税什么时候交
  • 在建工程领用原材料的账务处理
  • 不交住房公积金了能提取出来吗
  • 去银行提取备用金开支票怎么填
  • 补开发票怎么做分录?
  • 代开专票作废了扣了两次税怎么办?
  • 原材料保险公司赔偿会计分录怎么写
  • 税务局扣税余额不足
  • 如何查询当月社保和公积金是否缴纳
  • 职工教育经费能抵扣进项税
  • 普通发票税率为1%吗
  • 个人房补申请书怎么办
  • 公司一季度报表一般是什么时候出
  • 资本公积金转增股本
  • 农民专业合作经济组织可以贷款吗
  • 高速公路过路费查询网站
  • 未抵扣完的进项税额可以跨年抵扣吗
  • 地价计入房产
  • 小规模纳税人月销售额不超过10万免征
  • 打方向咯噔一声已解决
  • 即征即退的增值税需要缴纳企业所得税吗
  • 银行承兑找个人怎么操作
  • 采购及安装合同怎么缴纳印花税
  • 职工教育经费培训费扣除比例
  • 电脑一开机一会一会黑屏
  • kali渗透工具安装
  • 出口收汇可以收人民币吗
  • 银行卡账户年费是什么意思 为什么扣我银行卡的钱
  • 对外投资概述
  • php如何实现登录和注册
  • 土地差价款和土地出让金
  • 计提坏账准备和转销坏账准备
  • 增值税专用发票电子版
  • php实现购物车功能源代码
  • vue组件继承element并重写方法
  • 信用减值损失属于费用类科目吗
  • 文本检测工具
  • thinkphpgui
  • 微信公众号开发淘宝客
  • 专项资金怎么填表
  • 产品检测费可以放入研发费用吗
  • 计提折旧是怎么计算的
  • 织梦改logo
  • 定期定额自行申报表
  • 补缴去年的附加税怎么算
  • 权益法下公允价值变动计入其他综合收益
  • 销售返利及发票开具如何进行会计处理?
  • 一般纳税人跨年冲红报年度所得税怎么做
  • 淘宝上买资料可以退吗
  • 机票的退票费可以开具发票吗
  • 印花税签合同
  • 出差在火车上算上班吗
  • 冲减以前年度营业外收入分录
  • 贷款罚息会计分录
  • 通讯发票可以税后抵扣吗
  • 排污费征收范围包括
  • 低值易耗品怎么做账
  • 工程尾款要计入什么科目
  • 非营利医疗机构印花税减免政策文件
  • windowsxp怎么隐藏桌面图标
  • windowsxp复制粘贴不可用?
  • centos7启动卡在界面
  • 安装双系统之后win10进不去
  • linux从一个命令获取数据到另一个命令
  • 文件视图分为哪几种
  • 安卓开发过程中的问题
  • xcopy命令怎么用
  • js中闭包
  • javascript中继承
  • 税务系统 网络发票
  • 开出去的专用发票存根怎么处理的
  • 对税务巡视工作的意见
  • 云南国税局官网网站
  • 主管税务机关指的是
  • 劳务分包需要交什么税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设