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中操作列表之list.extend()方法的使用
May 20 Python
Python实现PS图像调整颜色梯度效果示例
Jan 25 Python
python编程嵌套函数实例代码
Feb 11 Python
opencv python 傅里叶变换的使用
Jul 21 Python
Python Pillow Image Invert
Jan 22 Python
Python中函数的返回值示例浅析
Aug 28 Python
pytest中文文档之编写断言
Sep 12 Python
Laravel框架表单验证格式化输出的方法
Sep 25 Python
python中time包实例详解
Feb 02 Python
Python3+Django get/post请求实现教程详解
Feb 16 Python
python 用递归实现通用爬虫解析器
Apr 16 Python
如何在pycharm中快捷安装pip命令(如pygame)
May 31 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
兼容各大浏览器带关闭按钮的漂浮多组图片广告代码
2014/06/05 PHP
实例讲解yii2.0在php命令行中运行的步骤
2015/12/01 PHP
自制PHP框架之路由与控制器
2017/05/07 PHP
PHP实现的文件上传类与用法详解
2017/07/05 PHP
Kindeditor编辑器添加图片上传水印功能(php代码)
2017/08/03 PHP
关于取不到由location.href提交而来的上级页面地址的解决办法
2009/07/30 Javascript
NodeJS 模块开发及发布详解分享
2012/03/07 NodeJs
jquery scrollTop方法根据滚动像素显示隐藏顶部导航条
2013/05/27 Javascript
jQuery控制cookie过期时间的方法
2015/04/07 Javascript
JavaScript使用FileSystemObject对象写入文本文件内容的方法
2015/08/05 Javascript
JS实现带有抽屉效果的产品类网站多级导航菜单代码
2015/09/15 Javascript
不能不知道的10个angularjs英文学习网站
2016/03/23 Javascript
AngularJS基础 ng-keypress 指令简单示例
2016/08/02 Javascript
JS实现京东首页之页面顶部、Logo和搜索框功能
2017/01/12 Javascript
javascript实现最长公共子序列实例代码
2018/02/05 Javascript
用vue快速开发app的脚手架工具
2018/06/11 Javascript
vue和webpack打包项目相对路径修改的方法
2018/06/15 Javascript
JS中箭头函数与this的写法和理解
2021/01/14 Javascript
python中as用法实例分析
2015/04/30 Python
Python基于pygame实现图片代替鼠标移动效果
2015/11/11 Python
Python中标准库OS的常用方法总结大全
2017/07/19 Python
Python之自动获取公网IP的实例讲解
2017/10/01 Python
Python实现购物车功能的方法分析
2017/11/10 Python
python OpenCV学习笔记直方图反向投影的实现
2018/02/07 Python
python 列表删除所有指定元素的方法
2018/04/19 Python
Python学习笔记之图片人脸检测识别实例教程
2019/03/06 Python
python使用Plotly绘图工具绘制散点图、线形图
2019/04/02 Python
详解pytorch 0.4.0迁移指南
2019/06/16 Python
把django中admin后台界面的英文修改为中文显示的方法
2019/07/26 Python
django 利用Q对象与F对象进行查询的实现
2020/05/15 Python
Tensorflow与Keras自适应使用显存方式
2020/06/22 Python
用pip给python安装matplotlib库的详细教程
2021/02/24 Python
前端制作动画的几种方式(css3,js)
2016/12/12 HTML / CSS
详解html5 shiv.js和respond.min.js
2018/01/24 HTML / CSS
住宅使用说明书
2014/05/09 职场文书
宣传标语大全
2014/07/01 职场文书