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调用命令行进度条的方法
May 05 Python
Python基于smtplib实现异步发送邮件服务
May 28 Python
基于Python实现一个简单的银行转账操作
Mar 06 Python
python数据封装json格式数据
Mar 04 Python
PyQt5每天必学之切换按钮
Aug 20 Python
tensorflow: 查看 tensor详细数值方法
Jun 13 Python
对Python3.x版本print函数左右对齐详解
Dec 22 Python
Python 20行简单实现有道在线翻译的详解
May 15 Python
Python内置random模块生成随机数的方法
May 31 Python
python3获取当前目录的实现方法
Jul 29 Python
tensorflow实现读取模型中保存的值 tf.train.NewCheckpointReader
Feb 10 Python
Python绘图实现台风路径可视化代码实例
Oct 23 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
收音机另类DIY - 纸巾盒做外壳
2021/03/02 无线电
[FAQ]PHP中的一些常识:类篇
2006/10/09 PHP
php 调试利器debug_print_backtrace()
2012/07/23 PHP
php采用curl访问域名返回405 method not allowed提示的解决方法
2014/06/26 PHP
Laravel框架学习笔记(二)项目实战之模型(Models)
2014/10/15 PHP
php抓取网站图片并保存的实现方法
2015/10/29 PHP
PHP Yaf框架的简单安装使用教程(推荐)
2016/06/08 PHP
ThinkPHP3.2.1图片验证码实现方法
2016/08/19 PHP
php实现购物车产品删除功能(2)
2020/07/23 PHP
PHP 二维array转换json的实例讲解
2018/08/21 PHP
JavaScript中通过闭包解决只能取得包含函数中任何变量最后一个值的问题
2010/08/12 Javascript
javascript数字格式化通用类 accounting.js使用
2012/08/24 Javascript
javascript中的delete使用详解
2013/04/11 Javascript
Jquery插件easyUi表单验证提交(示例代码)
2013/12/30 Javascript
Bootstrap学习系列之使用 Bootstrap Typeahead 组件实现百度下拉效果
2016/07/07 Javascript
js操作浏览器的参数方法
2017/01/21 Javascript
JS实现禁止用户使用Ctrl+鼠标滚轮缩放网页的方法
2017/04/28 Javascript
利用Vue2.x开发实现JSON树的方法
2018/01/04 Javascript
Nodejs调用Dll模块的方法
2018/09/17 NodeJs
vue多层嵌套路由实例分析
2019/03/19 Javascript
浅谈JS中几种轻松处理'this'指向方式
2019/09/16 Javascript
使用localStorage替代cookie做本地存储
2019/09/25 Javascript
vue实现虚拟列表功能的代码
2020/07/28 Javascript
Python中的高级数据结构详解
2015/03/27 Python
python安装pil库方法及代码
2019/06/25 Python
CSS3制作酷炫的条纹背景
2017/11/09 HTML / CSS
html5教程制作简单画板代码分享
2013/12/04 HTML / CSS
稀有和绝版书籍:Biblio.com
2017/02/02 全球购物
Elizabeth Gage官网:英国最好的珠宝设计之一
2020/09/26 全球购物
工会优秀工作者事迹
2014/08/17 职场文书
博士生专家推荐信
2014/09/26 职场文书
通讯稿范文
2015/07/22 职场文书
幼儿园卫生保健制度
2015/08/05 职场文书
赡养老人协议书范本
2015/08/06 职场文书
PHP控制循环操作的时间
2021/04/01 PHP
如何获取numpy array前N个最大值
2021/05/14 Python