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使用Srapy框架爬虫模拟登陆并抓取知乎内容
Jul 02 Python
Python抓取手机号归属地信息示例代码
Nov 28 Python
Windows平台Python连接sqlite3数据库的方法分析
Jul 12 Python
Django CBV类的用法详解
Jul 26 Python
Python列表元素常见操作简单示例
Oct 25 Python
Python Pandas 转换unix时间戳方式
Dec 07 Python
pytorch实现mnist分类的示例讲解
Jan 10 Python
tensorflow之tf.record实现存浮点数数组
Feb 17 Python
Python稀疏矩阵及参数保存代码实现
Apr 18 Python
使用Python文件读写,自定义分隔符(custom delimiter)
Jul 05 Python
Python常驻任务实现接收外界参数代码解析
Jul 21 Python
python 逆向爬虫正确调用 JAR 加密逻辑
Jan 12 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
教你如何快捷的使用cmd访问mysql小技巧
2014/05/26 PHP
php中动态修改ini配置
2014/10/14 PHP
PHPWind9.0手动屏蔽验证码解决后台关闭验证码但是依然显示的问题
2016/08/12 PHP
PHP解耦的三重境界(浅谈服务容器)
2017/03/13 PHP
php获取excel文件数据
2017/04/21 PHP
php查看一个变量的占用内存的实例代码
2020/03/29 PHP
jQuery 使用手册(二)
2009/09/23 Javascript
JS网页图片按比例自适应缩放实现方法
2014/01/15 Javascript
JavaScript实现网页截图功能
2014/10/16 Javascript
Javascript实现获取及设置光标位置的方法
2015/07/21 Javascript
jQuery实现淡入淡出二级下拉导航菜单的方法
2015/08/28 Javascript
JavaScript 数组some()和filter()的用法及区别
2016/05/20 Javascript
javascript中数组(Array)对象和字符串(String)对象的常用方法总结
2016/12/15 Javascript
详解用node搭建简单的静态资源管理器
2017/08/09 Javascript
简单了解JavaScript异步
2019/05/23 Javascript
微信小程序iOS下拉白屏晃动问题解决方案
2019/10/12 Javascript
vue-resourc发起异步请求的方法
2020/02/11 Javascript
[43:47]DOTA2上海特级锦标赛主赛事日 - 4 败者组第四轮#2 MVP.Phx VS Fnatic第一局
2016/03/05 DOTA
[01:04:39]OG vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
python字典排序实例详解
2015/05/20 Python
python获得一个月有多少天的方法
2015/06/04 Python
对python中类的继承与方法重写介绍
2019/01/20 Python
解决Python找不到ssl模块问题 No module named _ssl的方法
2019/04/29 Python
基于Python爬取fofa网页端数据过程解析
2020/07/13 Python
Python Spyder 调出缩进对齐线的操作
2021/02/26 Python
通过css3的filter滤镜改变png图片的颜色的示例代码
2020/05/06 HTML / CSS
基于HTML5 Canvas 实现弹出框效果
2017/06/05 HTML / CSS
Banggood官网:面向全球客户的综合商城
2017/04/19 全球购物
C#中的验证控件有几种
2014/03/08 面试题
java程序员面试交流
2012/11/29 面试题
法学研究生自我鉴定范文
2013/12/04 职场文书
机关作风建设自查报告
2014/10/22 职场文书
召开会议通知范文
2015/04/15 职场文书
采购部年度工作总结
2015/08/13 职场文书
办公室主任岗位竞聘书
2015/09/15 职场文书
浅谈Nginx 中的两种限流方式
2021/03/31 Servers