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 相关文章推荐
python绘制中国大陆人口热力图
Nov 07 Python
详解python之heapq模块及排序操作
Apr 04 Python
已安装tensorflow-gpu,但keras无法使用GPU加速的解决
Feb 07 Python
Django中使用Json返回数据的实现方法
Jun 03 Python
pytorch判断是否cuda 判断变量类型方式
Jun 23 Python
python实现批量提取指定文件夹下同类型文件
Apr 05 Python
pytorch 带batch的tensor类型图像显示操作
May 20 Python
Jupyter notebook 更改文件打开的默认路径操作
May 21 Python
python 爬取华为应用市场评论
May 29 Python
Python实现拼音转换
Jun 07 Python
Python实现科学占卜 让视频自动打码
Apr 09 Python
Python使用BeautifulSoup4修改网页内容
May 20 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
php empty() 检查一个变量是否为空
2011/11/10 PHP
php中json_encode处理gbk与gb2312中文乱码问题的解决方法
2014/07/10 PHP
PHP判断字符串长度的两种方法很实用
2015/09/22 PHP
总结一些PHP中好用但又容易忽略的小知识
2017/06/02 PHP
理清PHP在Linxu下执行时的文件权限方法
2017/06/07 PHP
PHP工厂模式、单例模式与注册树模式实例详解
2019/06/03 PHP
通过PHP的Wrapper无缝迁移原有项目到新服务的实现方法
2020/04/02 PHP
如何使用json在前后台进行数据传输实例介绍
2013/04/11 Javascript
html5 canvas js(数字时钟)实例代码
2013/12/23 Javascript
跟我学习javascript的最新标准ES6
2015/11/20 Javascript
Node.js实现数据推送
2016/04/14 Javascript
jQuery插件EasyUI实现Layout框架页面中弹出窗体到最顶层效果(穿越iframe)
2016/08/05 Javascript
JavaScript中原型链存在的问题解析
2016/09/25 Javascript
为vue项目自动设置请求状态的配置方法
2019/06/09 Javascript
vue解决花括号数据绑定不成功的问题
2019/10/30 Javascript
Vue实现附件上传功能
2020/05/28 Javascript
基于vue-simple-uploader封装文件分片上传、秒传及断点续传的全局上传插件功能
2021/02/23 Vue.js
Python生成pdf文件的方法
2014/08/04 Python
优化Python代码使其加快作用域内的查找
2015/03/30 Python
Python中转换角度为弧度的radians()方法
2015/05/18 Python
python列表的增删改查实例代码
2018/01/30 Python
Python lambda表达式用法实例分析
2018/12/25 Python
Python3.5迭代器与生成器用法实例分析
2019/04/30 Python
python输出带颜色字体实例方法
2019/09/01 Python
postman和python mock测试过程图解
2020/02/22 Python
Python CategoricalDtype自定义排序实现原理解析
2020/09/11 Python
常用的四种CSS透明属性介绍
2014/04/12 HTML / CSS
大学生活学习的自我评价
2013/12/03 职场文书
父亲八十大寿答谢词
2014/01/23 职场文书
合作意向协议书范本
2014/03/31 职场文书
关于教师节的演讲稿
2014/09/04 职场文书
公务员上班玩游戏检讨书
2014/09/17 职场文书
教师专业技术工作总结2015
2015/05/13 职场文书
地道战观后感
2015/06/04 职场文书
Go归并排序算法的实现方法
2022/04/06 Golang
Android开发实现极为简单的QQ登录页面
2022/04/24 Java/Android