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实现递归版汉诺塔示例(汉诺塔递归算法)
Apr 08 Python
python实现图片处理和特征提取详解
Nov 13 Python
pandas object格式转float64格式的方法
Apr 10 Python
基于numpy.random.randn()与rand()的区别详解
Apr 17 Python
对python PLT中的image和skimage处理图片方法详解
Jan 10 Python
举例讲解Python常用模块
Mar 08 Python
python爬虫selenium和phantomJs使用方法解析
Aug 08 Python
python使用sklearn实现决策树的方法示例
Sep 12 Python
TensorFlow dataset.shuffle、batch、repeat的使用详解
Jan 21 Python
python用TensorFlow做图像识别的实现
Apr 21 Python
使用python批量修改XML文件中图像的depth值
Jul 22 Python
Python3爬虫关于识别检验滑动验证码的实例
Jul 30 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源代码数组统计count分析
2011/08/02 PHP
用javascript getComputedStyle获取和设置style的原理
2008/10/10 Javascript
js window.event对象详尽解析
2009/02/17 Javascript
csdn 博客中实现运行代码功能实现
2009/08/29 Javascript
js下通过getList函数实现分页效果的代码
2010/09/17 Javascript
jquery xMarquee实现文字水平无缝滚动效果
2014/04/29 Javascript
javascript中兼容主流浏览器的动态生成iframe方法
2014/05/05 Javascript
Ajax分页插件Pagination从前台jQuery到后端java总结
2016/07/22 Javascript
AngularJS模仿Form表单提交的实现代码
2016/12/08 Javascript
JavaScrip关于创建常量的知识点
2017/12/07 Javascript
微信小程序实现分享朋友圈的图片功能示例
2019/01/18 Javascript
vue使用Proxy实现双向绑定的方法示例
2019/03/20 Javascript
json解析大全 双引号、键值对不在一起的情况
2019/12/06 Javascript
Antd中单个DatePicker限定时间输入范围操作
2020/10/29 Javascript
详解Vue.js3.0 组件是如何渲染为DOM的
2020/11/10 Javascript
Django框架下在URLconf中指定视图缓存的方法
2015/07/23 Python
Python 实现数据库(SQL)更新脚本的生成方法
2017/07/09 Python
利用Python操作消息队列RabbitMQ的方法教程
2017/07/19 Python
python 根据网易云歌曲的ID 直接下载歌曲的实例
2019/08/24 Python
如何使用python写截屏小工具
2020/09/29 Python
CSS3使用多列制作瀑布流
2016/05/10 HTML / CSS
详解基于 Canvas 手撸一个六边形能力图
2019/09/02 HTML / CSS
HTML5在微信内置浏览器下右上角菜单的调整字体导致页面显示错乱的问题
2021/01/19 HTML / CSS
GoPro摄像机美国官网:美国运动相机厂商
2018/07/03 全球购物
英国健身超市:Fitness Superstore
2019/06/17 全球购物
演讲稿怎么写才完美
2014/01/02 职场文书
公交公司毕业生求职信
2014/02/15 职场文书
2014年端午节演讲稿范文
2014/05/23 职场文书
篮球比赛策划方案
2014/06/05 职场文书
日语专业求职信
2014/07/04 职场文书
外贸业务员岗位职责
2015/02/13 职场文书
幼儿园教师岗位职责
2015/04/02 职场文书
学校节水倡议书
2015/04/29 职场文书
先进工作者主要事迹材料
2015/11/03 职场文书
详解运行Python的神器Jupyter Notebook
2021/06/03 Python
html5+实现plus.io进行拍照和图片等获取
2022/06/01 HTML / CSS