Python函数的迭代器与生成器的示例代码


Posted in Python onJune 18, 2020

函数的迭代器

函数的强大功能叫做迭代器,Python里面最具威力的功能之一。迭代器我们听起来会感觉非常陌生,在list、tuple都有用到它,我们是使用for和in取列表中的每一个元素,对每个元素依次处理,这种方法就叫做迭代,实现这种方法的函数叫做迭代器。迭代器中有两个基本的函数,这个函数叫做方法,这个是面向对象编程称呼的一个方法,这两个方法叫做iter()和next()。

1.什么是迭代?迭代是一个重复的过程,并且每次重复都是基于上一次的结果而来

2.要想了解迭代器到底是什么?必须先了解一个概念,即什么是可迭代的对象? 可迭代的对象:在python中,但凡内置有'‘iter''方法的对象,都是可迭代的对象

3.迭代器:迭代取值工具,可迭代的对象执行iter方法得到的返回值就是迭代器对象

举例演示-迭代器定义一个列表,处理成处理器

list1=[1,2,3,4] 
it=iter(list1)#赋值变量 
print(next(it)) 
print(next(it)) 
print(next(it)) 
print(next(it))

Python函数的迭代器与生成器的示例代码

举例演示-输出异常

list1=[1,2,3,4] 
it=iter(list1)#赋值变量 
print(next(it)) 
print(next(it)) 
print(next(it)) 
print(next(it)) 
print(next(it))#except,超出列表范围会报错误信息StopIteration

Python函数的迭代器与生成器的示例代码

总结

每调用一次next()会输出iter()里面的下一个元素

一直到输出完成

超出长度就会出现异常

函数的生成器

我们感受到迭代器的功能的强大,如何自己制作一个迭代器呢?

举例演示-简单迭代器range()函数

for i in range(10,20,2):#第一个参数是开始参数;第二个参数是结束参数;第三个参数是步长

 print(i)

如果步长为小数0.5是否可以,则会返回类型错误的信息

Range()函数必须是整数哦

Python函数的迭代器与生成器的示例代码

举例演示-如何优化上述问题,支持小数

引用yield,带yield的函数就叫做生成器

def frange(start,stop,step):
  x=start#定义一个变量  
  while x<stop: 
   yield x #没有yield,while会把所有的值一次性进行返回;yield运行到这个位置,会暂停记录当前的位置,当你再次去调用一个next的时候,会根据当前的位置返回一个值给你   
   x+=step 
for i in frange(10,20,0.5):
  print(i)

Python函数的迭代器与生成器的示例代码

到此这篇关于Python函数的迭代器与生成器的文章就介绍到这了,更多相关Python函数的迭代器与生成器内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python3.0 字典key排序
Dec 24 Python
使用Protocol Buffers的C语言拓展提速Python程序的示例
Apr 16 Python
Python实现包含min函数的栈
Apr 29 Python
Python的几个高级语法概念浅析(lambda表达式闭包装饰器)
May 28 Python
Python实现简单网页图片抓取完整代码实例
Dec 15 Python
利用 python 对目录下的文件进行过滤删除
Dec 27 Python
Python脚本修改阿里云的访问控制列表的方法
Mar 08 Python
Python 利用高德地图api实现经纬度与地址的批量转换
Aug 14 Python
Python中turtle库的使用实例
Sep 09 Python
浅谈在django中使用redirect重定向数据传输的问题
Mar 13 Python
python opencv常用图形绘制方法(线段、矩形、圆形、椭圆、文本)
Apr 12 Python
一行Python命令实现批量加水印
Apr 07 Python
使用python实现名片管理系统
Jun 18 #Python
keras 回调函数Callbacks 断点ModelCheckpoint教程
Jun 18 #Python
浅谈keras.callbacks设置模型保存策略
Jun 18 #Python
用python实现名片管理系统
Jun 18 #Python
Python 为什么推荐蛇形命名法原因浅析
Jun 18 #Python
python退出循环的方法
Jun 18 #Python
keras实现多GPU或指定GPU的使用介绍
Jun 17 #Python
You might like
解析centos中Apache、php、mysql 默认安装路径
2013/06/25 PHP
PHP的Yii框架中Model模型的学习教程
2016/03/29 PHP
完美解决phpexcel导出到xls文件出现乱码的问题
2016/10/29 PHP
PHP实现转盘抽奖算法分享
2020/04/15 PHP
PHP PDOStatement::fetch讲解
2019/01/31 PHP
Add Formatted Text to a Word Document
2007/06/15 Javascript
基于jquery的超简单上下翻
2010/04/20 Javascript
关于JavaScript对象的动态选择及遍历对象
2014/03/10 Javascript
Javascript基础知识(一)核心基础语法与事件模型
2014/09/29 Javascript
javascript中数组方法汇总
2015/07/07 Javascript
JavaScript实现表格快速变色效果代码
2015/08/19 Javascript
详解nodejs与javascript中的aes加密
2016/05/22 NodeJs
Ionic2调用本地SQlite实例
2017/04/22 Javascript
nodejs判断文件、文件夹是否存在及删除的方法
2017/11/10 NodeJs
关于 angularJS的一些用法
2017/11/29 Javascript
Vue-Router基础学习笔记(小结)
2018/10/15 Javascript
JS中的一些常用的函数式编程术语
2019/06/15 Javascript
antd 表格列宽自适应方法以及错误处理操作
2020/10/27 Javascript
Vue与React的区别和优势对比
2020/12/18 Vue.js
[00:18]天涯墨客三技能展示
2018/08/25 DOTA
python爬虫入门教程之糗百图片爬虫代码分享
2014/09/02 Python
django静态文件加载的方法
2018/05/20 Python
Python SQL查询并生成json文件操作示例
2018/08/17 Python
python的一些加密方法及python 加密模块
2019/07/11 Python
基于django micro搭建网站实现加水印功能
2020/05/22 Python
python 在sql语句中使用%s,%d,%f说明
2020/06/06 Python
html5-websocket基于远程方法调用的数据交互实现
2012/12/04 HTML / CSS
澳大利亚领先的折扣药房:Chemist Direct(有中文站)
2018/11/24 全球购物
Ray-Ban雷朋瑞典官方网站:全球领先的太阳眼镜品牌
2019/08/22 全球购物
行政专员的岗位职责
2014/03/10 职场文书
法人授权委托书范本
2014/04/04 职场文书
社区班子对照检查材料
2014/08/27 职场文书
商务邀请函
2015/01/30 职场文书
办公室禁烟通知
2015/04/23 职场文书
薪资证明范本
2015/06/19 职场文书
《秋天的图画》教学反思
2016/02/19 职场文书