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过滤函数filter()使用自定义函数过滤序列实例
Aug 26 Python
python生成随机mac地址的方法
Mar 16 Python
Python中字典(dict)合并的四种方法总结
Aug 10 Python
Python基础之getpass模块详细介绍
Aug 10 Python
python实现redis三种cas事务操作
Dec 19 Python
python中使用xlrd读excel使用xlwt写excel的实例代码
Jan 31 Python
Windows 64位下python3安装nltk模块
Sep 19 Python
python3.4 将16进制转成字符串的实例
Jun 12 Python
django框架使用方法详解
Jul 18 Python
Python3批量移动指定文件到指定文件夹方法示例
Sep 02 Python
python jenkins 打包构建代码的示例代码
Nov 29 Python
详解用Python调用百度地图正/逆地理编码API
Jul 02 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缓存函数的使用说明
2013/05/10 PHP
ajax+php实现无刷新验证手机号的实例
2017/12/22 PHP
PHP简单实现解析xml为数组的方法
2018/05/02 PHP
javascript实现div浮动在网页最顶上并带关闭按钮效果实例
2013/08/13 Javascript
jquery插件开发之实现jquery手风琴功能分享
2014/03/10 Javascript
简介JavaScript中的unshift()方法的使用
2015/06/09 Javascript
使用AngularJS处理单选框和复选框的简单方法
2015/06/19 Javascript
在jQuery中使用$而避免跟其它库产生冲突的方法
2015/08/13 Javascript
轻松学习jQuery插件EasyUI EasyUI创建树形菜单
2015/11/30 Javascript
使用jQuery在移动页面上添加按钮和给按钮添加图标
2015/12/04 Javascript
JavaScript动态添加事件之事件委托
2016/07/12 Javascript
关于JSON与JSONP简单总结
2016/08/16 Javascript
JS实现的五级联动菜单效果完整实例
2017/02/23 Javascript
JavaScript数组去重算法实例小结
2018/05/07 Javascript
jquery实现下载图片功能
2019/07/18 jQuery
解决vue-router 切换tab标签关闭时缓存问题
2020/07/22 Javascript
Vue页面跳转传递参数及接收方式
2020/09/09 Javascript
vue中如何自定义右键菜单详解
2020/12/08 Vue.js
[50:02]完美世界DOTA2联赛循环赛 Magma vs IO BO2第一场 11.01
2020/11/02 DOTA
python如何为被装饰的函数保留元数据
2018/03/21 Python
python 获取list特定元素下标的实例讲解
2018/04/09 Python
python 定义给定初值或长度的list方法
2018/06/23 Python
python二维列表一维列表的互相转换实例
2018/07/02 Python
深入浅析Python中list的复制及深拷贝与浅拷贝
2018/09/03 Python
python 搜索大文件的实例代码
2019/07/08 Python
python提取照片坐标信息的实例代码
2019/08/14 Python
python web框架Flask实现图形验证码及验证码的动态刷新实例
2019/10/14 Python
教你使用Sublime text3搭建Python开发环境及常用插件安装另分享Sublime text3最新激活注册码
2020/11/12 Python
python中的对数log函数表示及用法
2020/12/09 Python
新西兰最大的品牌运动鞋购物网站:Platypus NZ
2017/10/27 全球购物
美国庭院家具购物网站:AlphaMarts
2019/04/10 全球购物
高级销售员求职信
2013/10/25 职场文书
护理学应聘自荐书范文
2014/02/05 职场文书
彩色的非洲教学反思
2014/02/18 职场文书
幼儿园教师的考核评语
2014/04/18 职场文书
企业安全生产责任书范本
2014/07/28 职场文书