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中join和split用法实例
Apr 14 Python
实例讲解Python中global语句下全局变量的值的修改
Jun 16 Python
Python遍历文件夹和读写文件的实现代码
Aug 28 Python
Python 爬虫学习笔记之单线程爬虫
Sep 21 Python
Python 自动刷博客浏览量实例代码
Jun 14 Python
python实现画一颗树和一片森林
Jun 25 Python
Python中flatten( )函数及函数用法详解
Nov 02 Python
用Python实现最速下降法求极值的方法
Jul 10 Python
Python字典常见操作实例小结【定义、添加、删除、遍历】
Oct 25 Python
pyCharm 实现关闭代码检查
Jun 09 Python
python中四舍五入的正确打开方式
Jan 18 Python
Pycharm 如何一键加引号的方法步骤
Feb 05 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
Laravel SQL语句记录方式(推荐)
2016/05/26 PHP
php查找字符串中第一个非0的位置截取
2017/02/27 PHP
ThinkPHP开发--使用七牛云储存
2017/09/14 PHP
PHP抽象类基本用法示例
2018/12/28 PHP
基于jquery的loading效果实现代码
2010/11/05 Javascript
jquery lazyload延迟加载技术的实现原理分析
2011/01/24 Javascript
js调用webservice中的方法实现思路及代码
2013/02/25 Javascript
Javascript 按位左移运算符使用介绍(
2014/02/04 Javascript
javascript对JSON数据排序的3个例子
2014/04/12 Javascript
jquery实现炫酷的叠加层自动切换特效
2015/02/01 Javascript
javascript中加var和不加var的区别 你真的懂吗
2016/01/06 Javascript
JavaScript中日常收集常见的10种错误(推荐)
2017/01/08 Javascript
JavaScript实现256色转灰度图
2017/02/22 Javascript
vue 请求后台数据的实例代码
2017/06/22 Javascript
node前端开发模板引擎Jade的入门
2018/05/11 Javascript
修改npm全局安装模式的路径方法
2018/05/15 Javascript
详解js删除数组中的指定元素
2018/10/31 Javascript
js变量声明var使用与不使用的区别详解
2019/01/21 Javascript
JS实现处理时间,年月日,星期的公共方法示例
2019/05/31 Javascript
如何在VUE中使用vue-awesome-swiper
2021/01/04 Vue.js
python学习之第三方包安装方法(两种方法)
2015/07/30 Python
对Python中创建进程的两种方式以及进程池详解
2019/01/14 Python
Python实现使用dir获取类的方法列表
2019/12/24 Python
基于python实现查询ip地址来源
2020/06/02 Python
Nike西班牙官方网站:Nike.com (ES)
2017/10/30 全球购物
北美最大的参茸药食商城:德成行
2020/12/06 全球购物
解释一下ruby中的特殊方法与特殊类
2013/02/26 面试题
水务局局长岗位职责
2013/11/28 职场文书
煤矿班组长岗位职责
2013/12/29 职场文书
毕业留言寄语大全
2014/04/10 职场文书
县委务虚会发言材料
2014/10/20 职场文书
党员自评材料范文
2014/12/17 职场文书
初中毕业生自我评价
2015/03/02 职场文书
祝寿主持词
2015/07/02 职场文书
加薪申请书应该这样写!
2019/07/04 职场文书
pytorch MSELoss计算平均的实现方法
2021/05/12 Python