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 04 Python
编写Python脚本把sqlAlchemy对象转换成dict的教程
May 29 Python
windows下python安装pip图文教程
May 25 Python
3分钟学会一个Python小技巧
Nov 23 Python
Python读取YUV文件,并显示的方法
Dec 04 Python
Python 获取主机ip与hostname的方法
Dec 17 Python
Python基础学习之类与实例基本用法与注意事项详解
Jun 17 Python
pytorch ImageFolder的覆写实例
Feb 20 Python
python实现密码强度校验
Mar 18 Python
Python项目打包成二进制的方法
Dec 30 Python
Python实现简单猜数字游戏
Feb 03 Python
python处理json数据文件
Apr 11 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实现Mysql读写分离
2013/06/28 PHP
php对xml文件的增删改查操作实现方法分析
2017/05/19 PHP
Yii 框架入口脚本示例分析
2020/05/19 PHP
用JavaScript计算在UTF-8下存储字符串占用字节数
2013/08/08 Javascript
javascript使用appendChild追加节点实例
2015/01/12 Javascript
直接拿来用的15个jQuery代码片段
2015/09/23 Javascript
js点击返回跳转到指定页面实现过程
2020/08/20 Javascript
JavaScript仿网易选项卡制作代码
2016/10/06 Javascript
js正则表达式验证密码强度【推荐】
2017/03/03 Javascript
javascript观察者模式实现自动刷新效果
2017/09/05 Javascript
详解node.js的http模块实例演示
2018/07/12 Javascript
vue实现商城秒杀倒计时功能
2019/12/12 Javascript
一篇文章让你搞懂JavaScript 原型和原型链
2020/11/23 Javascript
[01:01:24]LGD vs Fnatic 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python实现简单的可逆加密程序实例
2015/03/05 Python
利用Python命令行传递实例化对象的方法
2016/11/02 Python
python批量替换页眉页脚实例代码
2018/01/22 Python
python中的变量如何开辟内存
2018/06/26 Python
python多线程同步实例教程
2019/08/11 Python
解决Numpy中sum函数求和结果维度的问题
2019/12/06 Python
Python代码块及缓存机制原理详解
2019/12/13 Python
一款纯css3实现的tab选项卡的实列教程
2014/12/11 HTML / CSS
开普敦通行证:Cape Town Pass
2019/07/18 全球购物
Notino罗马尼亚网站:购买香水和化妆品
2019/07/20 全球购物
存储过程的优缺点是什么
2015/01/10 面试题
高三毕业生自我鉴定
2013/12/20 职场文书
酒店中秋节活动方案
2014/01/31 职场文书
就业表自我评价分享
2014/02/06 职场文书
致跳远运动员广播稿
2014/02/11 职场文书
研究生毕业自我鉴定范文
2014/03/27 职场文书
2014年政务公开工作总结
2014/12/09 职场文书
招商银行工作证明
2015/06/17 职场文书
《一面五星红旗》教学反思
2016/02/23 职场文书
微软Win11有哪些隐藏功能? windows11多个功能汇总
2021/11/21 数码科技
js前端面试常见浏览器缓存强缓存及协商缓存实例
2022/06/21 Javascript
Nginx如何配置多个服务域名解析共用80端口详解
2022/09/23 Servers