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使用openpyxl读写excel文件的方法
Jun 30 Python
Python中elasticsearch插入和更新数据的实现方法
Apr 01 Python
Python学习小技巧总结
Jun 10 Python
python实现简单flappy bird
Dec 24 Python
python 求一个列表中所有元素的乘积实例
Jun 11 Python
使用python 写一个静态服务(实战)
Jun 28 Python
Python 线程池用法简单示例
Oct 02 Python
PyCharm 2020 激活到 2100 年的教程
Mar 25 Python
Python多进程编程常用方法解析
Mar 26 Python
解决pycharm debug时界面下方不出现step等按钮及变量值的问题
Jun 09 Python
Python insert() / append() 用法 Leetcode实战演示
Mar 31 Python
Python pygame实现中国象棋单机版源码
Jun 20 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面向对象
2012/02/22 PHP
PHP递归删除多维数组中的某个值
2017/04/17 PHP
弹出模态框modal的实现方法及实例
2017/09/19 PHP
php设计模式之代理模式分析【星际争霸游戏案例】
2020/03/23 PHP
from 表单提交返回值用post或者是get方法实现
2013/08/21 Javascript
3分钟写出来的Jquery版checkbox全选反选功能
2013/10/23 Javascript
JavaScript继承基础讲解(原型链、借用构造函数、混合模式、原型式继承、寄生式继承、寄生组合式继承)
2014/08/16 Javascript
详解jquery中$.ajax方法提交表单
2014/11/03 Javascript
nodejs开发环境配置与使用
2014/11/17 NodeJs
javascript将数字转换整数金额大写的方法
2015/01/27 Javascript
JavaScript图片轮播代码分享
2015/07/31 Javascript
easyui datagrid 大数据加载效率慢,优化解决方法(推荐)
2016/11/09 Javascript
浅谈Webpack打包优化技巧
2018/06/12 Javascript
axios简单实现小程序延时loading指示
2018/07/30 Javascript
微信小程序 确认框的实现(附代码)
2019/07/23 Javascript
layui 上传图片 返回图片地址的方法
2019/09/26 Javascript
在node环境下parse Smarty模板的使用示例代码
2019/11/15 Javascript
python计算书页码的统计数字问题实例
2014/09/26 Python
在Django的session中使用User对象的方法
2015/07/23 Python
python实现俄罗斯方块小游戏
2020/04/24 Python
python切割图片的示例
2020/11/12 Python
python3.9实现pyinstaller打包python文件成exe
2020/12/13 Python
python中reload重载实例用法
2020/12/15 Python
实例教程 HTML5 Canvas 超炫酷烟花绽放动画实现代码
2014/11/05 HTML / CSS
Groupon比利时官方网站:特卖和网上购物高达-70%
2019/08/09 全球购物
一份Java笔试题
2012/02/21 面试题
好习惯伴我成长演讲稿
2014/05/21 职场文书
励志演讲稿3分钟
2014/08/21 职场文书
房产授权委托书范本
2014/09/22 职场文书
2014年四风个人对照检查及整改措施
2014/10/28 职场文书
语文教师个人工作总结
2015/02/06 职场文书
公司前台接待岗位职责
2015/04/03 职场文书
追悼词范文大全
2015/06/23 职场文书
董事会决议范本
2015/07/01 职场文书
2015年秋季校长开学典礼致辞
2015/07/29 职场文书
tensorflow中的数据类型dtype用法说明
2021/05/26 Python