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实现115网盘自动下载的方法
Sep 30 Python
python每隔N秒运行指定函数的方法
Mar 16 Python
python下paramiko模块实现ssh连接登录Linux服务器
Jun 03 Python
python清除指定目录内所有文件中script的方法
Jun 30 Python
Python实现通过文件路径获取文件hash值的方法
Apr 29 Python
tensorflow中next_batch的具体使用
Feb 02 Python
在python中实现强制关闭线程的示例
Jan 22 Python
Python使用itchat 功能分析微信好友性别和位置
Aug 05 Python
Windows下PyCharm2018.3.2 安装教程(图文详解)
Oct 24 Python
python pygame实现滚动横版射击游戏城市之战
Nov 25 Python
Tensorflow实现多GPU并行方式
Feb 03 Python
python中查看.db文件中表格的名字及表格中的字段操作
Jul 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
PHP 防恶意刷新实现代码
2010/05/16 PHP
PHP 截取字符串专题集合
2010/08/19 PHP
PHP 第二节 数据类型之转换
2012/04/28 PHP
php生成短域名函数
2015/03/23 PHP
三个思路解决laravel上传文件报错:413 Request Entity Too Large问题
2017/11/13 PHP
js option删除代码集合
2008/11/12 Javascript
javascript 获取网页标题代码实例
2014/01/22 Javascript
js 日期比较相关天数代码
2014/04/02 Javascript
js 动态为textbox添加下拉框数据源的方法
2014/04/24 Javascript
JS实现表格数据各种搜索功能的方法
2015/03/03 Javascript
jQuery实现带延迟的二级tab切换下拉列表效果
2015/09/01 Javascript
js中获取 table节点各tr及td的内容简单实例
2016/10/14 Javascript
浅谈javascript中的三种弹窗
2016/10/21 Javascript
微信小程序 五星评分(包括半颗星评分)实例代码
2016/12/14 Javascript
JS实现购物车特效
2017/02/02 Javascript
bootstrap+jQuery实现的动态进度条功能示例
2017/05/25 jQuery
vue中使用gojs/jointjs的示例代码
2018/08/24 Javascript
详解如何构建一个Angular6的第三方npm包
2018/09/07 Javascript
d3.js 地铁轨道交通项目实战
2019/11/27 Javascript
[01:06]DOTA2隆重推出2016冬季勇士令状 内含上海特级锦标赛互动指南
2016/02/17 DOTA
使用python实现离散时间傅里叶变换的方法
2019/09/02 Python
基于Python和PyYAML读取yaml配置文件数据
2020/01/13 Python
python动态文本进度条的实例代码
2020/01/22 Python
解析pip安装第三方库但PyCharm中却无法识别的问题及PyCharm安装第三方库的方法教程
2020/03/10 Python
Python动态强类型解释型语言原理解析
2020/03/25 Python
css3 flex布局 justify-content:space-between 最后一行左对齐
2020/01/02 HTML / CSS
HTML5中5个简单实用的API
2014/04/28 HTML / CSS
戴尔加拿大官网:Dell加拿大
2016/09/17 全球购物
房地产销售经理岗位职责
2014/01/01 职场文书
机关财务管理制度
2014/01/17 职场文书
大学校务公开实施方案
2014/03/31 职场文书
孝老爱亲模范事迹材料
2014/05/25 职场文书
责任书范本大全
2015/05/11 职场文书
离婚被告代理词
2015/05/23 职场文书
启迪人心的励志语录:脾气永远不要大于本事
2020/01/02 职场文书
关于JavaScript回调函数的深入理解
2021/06/27 Javascript