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使用matplotlib实现在坐标系中画一个矩形的方法
May 20 Python
Python实现简单字典树的方法
Apr 29 Python
Python中字符串的常见操作技巧总结
Jul 28 Python
Python随机读取文件实现实例
May 25 Python
Python使用struct处理二进制的实例详解
Sep 11 Python
Python模糊查询本地文件夹去除文件后缀的实例(7行代码)
Nov 09 Python
11月编程语言排行榜 Python逆袭C#上升到第4
Nov 15 Python
Python zip()函数用法实例分析
Mar 17 Python
使用django-guardian实现django-admin的行级权限控制的方法
Oct 30 Python
Python实现定期检查源目录与备份目录的差异并进行备份功能示例
Feb 27 Python
python错误调试及单元文档测试过程解析
Dec 19 Python
Python爬虫开发与项目实战
Dec 16 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压缩和解压缩字符串的方法
2015/03/14 PHP
phpcms手机内容页面添加上一篇和下一篇
2015/06/05 PHP
PHP+iframe模拟Ajax上传文件功能示例
2019/07/02 PHP
修改Laravel自带的认证系统的User类的命名空间的步骤
2019/10/15 PHP
js文字滚动停顿效果代码
2008/06/28 Javascript
jquery 将disabled的元素置为enabled的三种方法
2009/07/25 Javascript
javascript之querySelector和querySelectorAll使用说明
2011/10/09 Javascript
js转义字符介绍
2013/11/05 Javascript
javascript 获取元素样式必杀技
2014/05/04 Javascript
基于jQuery的判断iPad、iPhone、Android是横屏还是竖屏的代码
2014/05/11 Javascript
jquery选择器需要注意的问题
2014/11/26 Javascript
JavaScript搜索字符串并将搜索结果返回到字符串的方法
2015/04/06 Javascript
wangEditor编辑器失去焦点后仍然可以在原位置插入图片分析
2015/05/06 Javascript
IE9+已经不对document.createElement向下兼容的解决方法
2015/09/14 Javascript
微信小程序 navbar实例详解
2017/05/11 Javascript
AngularJs的UI组件ui-Bootstrap之Tooltip和Popover
2018/07/13 Javascript
Centos7 安装Node.js10以上版本的方法步骤
2019/10/15 Javascript
vue中使用element ui的弹窗与echarts之间的问题详解
2019/10/25 Javascript
Python编程入门的一些基本知识
2015/05/13 Python
python数据结构之图深度优先和广度优先实例详解
2015/07/08 Python
Python实现OpenCV的安装与使用示例
2018/03/30 Python
实例分析python3实现并发访问水平切分表
2018/09/29 Python
对DataFrame数据中的重复行,利用groupby累加合并的方法详解
2019/01/30 Python
Python3中列表list合并的四种方法
2019/04/19 Python
python wxpython 实现界面跳转功能
2019/12/17 Python
PyCharm如何导入python项目的方法
2020/02/06 Python
python自定义函数def的应用详解
2020/06/03 Python
英国高街奥特莱斯:Highstreet Outlet
2019/11/21 全球购物
Three Graces London官网:英国奢侈品牌
2021/03/18 全球购物
外国语学院毕业生自荐信
2013/10/28 职场文书
2014幼儿园教师师德师风演讲稿
2014/09/10 职场文书
婚礼女方父母答谢词
2015/01/04 职场文书
对公司的意见和建议
2015/06/04 职场文书
七一表彰大会简报
2015/07/20 职场文书
2019年鼓励无偿献血倡议书
2019/09/17 职场文书
深入理解Pytorch微调torchvision模型
2021/11/11 Python