python学习系列(六)迭代器生成器
来源:互联网 发布:厦门java培训哪个好 编辑:程序博客网 时间:2024/05/18 00:45
迭代器是python的强大功能之一,是访问集合元素的一种方式
迭代器是一个可以记住遍历位置的对象(使用 yield)
迭代器从第一个元素开始迭代,知道全部访问完毕,只能向前不能后退
迭代器两个只要且重要的方法 :
iter()next()
生成器:在python中,使用了 yield 的方法称作生成器(generater)
生成器是一个返回迭代器的方法,只能用于迭代操作,简单理解:生成器就是一个迭代器!
例如:使用迭代器生成斐波那契数列(C# 中可使用递归算法实现)
生成器 fun()方法会返回一个新的迭代器 f ,这个 f 中一直执行 next()方法,next()每执行一次就返回当前的一个值,直到所有值全部返回完毕,结束!
在 fun()方法里用到了 yield ,其实也可以不用 yield ,如下图:
两个程序运行结果是一样的,这样看似就会有个矛盾:既然不用 yield 也可以实现,那上面 yield 是不是多余的呢?
答案:不多于
那什么时候用 yield ,什么时候不用呢?
没有 yield 的迭代,相当于生成了一个有 n 个元素的完整的 List ,这个 List 会很大;当我们需要在进行遍历的时候,每次循环只得到一个元素,这时候 yield 就很有用了,(这让我想得到了 C# 的协程了:yield return new watiforseconds(*))
总之,这个 yield 的使用时机,视需要而定~
阅读全文
0 0
- python学习系列(六)迭代器生成器
- Python学习之路六---迭代器、生成器
- python基础学习六:python生成器
- python系列之 - 迭代器、生成器
- Python学习系列(六)(模块)
- python特性(六):yield与迭代器生成器
- python 学习之路(迭代器&生成器)
- Python学习迭代器与生成器
- (×××###)python 迭代器 生成器(######×××××××)
- python学习系列(六)--- 正则表达式搜索中文
- python(六)切片,生成式,生成器,迭代
- 深入学习python(二) 迭代器(Iterator)和生成器(Generate)
- Python学习笔记(10)-生成器generator和迭代器Iterator
- (六)生成器
- 学习Python (六)
- python 从yield 学习迭代器和生成器
- Python 学习笔记 迭代器和生成器
- python中的迭代器和生成器学习
- bootstrap multiselect插件级联选择框操作 内容从json文件获取
- arm汇编
- 参加浙江中医药大学第十一届程序设计竞赛(ACM赛制)的总结
- 【Java】4.LinkedBlockingQueue使用与分析
- 蓝鲸巨打联盟 DP+三分
- python学习系列(六)迭代器生成器
- orgchart组织机构图
- Molog:使用 Serverless 搭建的前端错误日志及事件收集系统
- MongoDB + Spark: 完整的大数据解决方案
- elasticsearch和 kibana的一些文章
- Hashtable和HashSet的区别
- 探索式测试--深巷测试法
- Windows下安装pillow问题,亲测可行
- struts2-timer拦截器实例