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 OS模块常用函数说明
May 23 Python
Python实现视频下载功能
Mar 14 Python
python爬虫之百度API调用方法
Jun 11 Python
简单实现python进度条脚本
Dec 18 Python
Python3多线程爬虫实例讲解代码
Jan 05 Python
Python程序运行原理图文解析
Feb 10 Python
Django自定义过滤器定义与用法示例
Mar 22 Python
解决Spyder中图片显示太小的问题
Apr 27 Python
python读写LMDB文件的方法
Jul 02 Python
python使用PyQt5的简单方法
Feb 27 Python
python实现梯度下降法
Mar 24 Python
Python函数默认参数常见问题及解决方案
Mar 26 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
DEDE采集大师官方留后门的删除办法
2011/01/08 PHP
探讨如何在php168_cms中提取验证码
2013/06/08 PHP
PHP使用内置函数file_put_contents写入文件及追加内容的方法
2015/12/07 PHP
自适应图片大小的弹出窗口
2006/07/27 Javascript
js 父窗口控制子窗口的行为-打开,关闭,重定位,回复
2010/04/20 Javascript
js的写法基础分析
2011/01/17 Javascript
js/jQuery对象互转(快速操作dom元素)
2013/02/04 Javascript
Javascript将双字节字符转换成单字节字符并计算长度
2016/06/22 Javascript
修改Nodejs内置的npm默认配置路径方法
2018/05/13 NodeJs
js实现坦克移动小游戏
2019/10/28 Javascript
前端vue-cli项目中使用img图片和background背景图的几种方法
2019/11/13 Javascript
Vue 的双向绑定原理与用法揭秘
2020/05/06 Javascript
用Python登录Gmail并发送Gmail邮件的教程
2015/04/17 Python
Python实现的数据结构与算法之双端队列详解
2015/04/22 Python
深入理解 Python 中的多线程 新手必看
2016/11/20 Python
Python读取MRI并显示为灰度图像实例代码
2018/01/03 Python
Python Series从0开始索引的方法
2018/11/06 Python
Python3.5内置模块之random模块用法实例分析
2019/04/26 Python
使用Python中的reduce()函数求积的实例
2019/06/28 Python
Python实现微信中找回好友、群聊用户撤回的消息功能示例
2019/08/23 Python
python之生成多层json结构的实现
2020/02/27 Python
keras 回调函数Callbacks 断点ModelCheckpoint教程
2020/06/18 Python
python基于socket模拟实现ssh远程执行命令
2020/12/05 Python
python读写数据读写csv文件(pandas用法)
2020/12/14 Python
AmazeUI 图标的示例代码
2020/08/13 HTML / CSS
俄罗斯在线大型超市:ТутПросто
2021/01/08 全球购物
Java语言程序设计测试题改错题部分
2014/07/22 面试题
精彩广告词大全
2014/03/19 职场文书
毕业生找工作自荐书
2014/06/30 职场文书
汽车转让协议书范本
2014/12/07 职场文书
音乐教师个人总结
2015/02/06 职场文书
员工离职通知函
2015/04/25 职场文书
2015年迎新晚会策划书
2015/07/16 职场文书
周一给客户的问候语
2015/11/10 职场文书
mysql5.6主从搭建以及不同步问题详解
2021/12/04 MySQL
Arthas排查Kubernetes中应用频繁挂掉重启异常
2022/02/28 MySQL