pyDay9
2024-09-27 18:39:38
内容来自廖雪峰的官方网站。
generator
1、引入generator的原因。
通过列表生成式,我们可以直接创建一个列表。但是,受到内存限制,列表容量肯定是有限的。而且,创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素,那后面绝大多数元素占用的空间都白白浪费了。
所以,如果列表元素可以按照某种算法推算出来,那我们是否可以在循环的过程中不断推算出后续的元素呢?这样就不必创建完整的list,从而节省大量的空间。在Python中,这种一边循环一边计算的机制,称为生成器:generator。
2、创建一个generator的方式。
第一种方法很简单,只要把一个列表生成式的[]
改成()
,就创建了一个generator。
>>> g = (x * x for x in range(1 , 4))
>>> g
<generator object <genexpr> at 0x000001F706186990>
3、打印出generator的每一个元素。
1) next(g)
2) for n in g: print(n)
最新文章
- Python学习【第二篇】Python入门
- mysql跟踪和日志
- ArcEngine10.1二次开发错误: 无法嵌入互操作类型,请改用适用的接口
- ByteBuffer用法小结
- 灰度图像阈值化分割常见方法总结及VC实现
- JPA 系列教程12-复合主键-2个@Id+@IdClass
- vgrant使用简易教程
- 集合中存的是引用,分析一道容易混淆的Java面试题
- FJUT寒假第一周作业浮点数查寻题解
- ucloud中的udisk错误“Read-only file system”修复指南
- 评估指标【交叉验证&;ROC曲线】
- java面向对象三大特性:封装、继承、多态
- HDU5818 Joint Stacks
- python模块--collections
- CentOS安装CAS 5.3.4服务端
- 安卓工作室 android studio 的 汉化 美化 定制 Android studio&#39;s Chinesization beautification customization
- HTML+CSS:圆形和圆角图片格式
- epoll的水平触发和边缘触发,以及边缘触发为什么要使用非阻塞IO
- Lucene - CustomScoreQuery 自定义排序
- ubuntu14配置opencv3.4.1(转)
热门文章
- M0 M4之GPIO初始化
- Weui upLoader
- JS-元素大小深入学习-offset、client、scroll等学习研究笔记
- Codeforces Round #375 (Div. 2)E. One-Way Reform
- sencha touch 入门系列 (三)sencha touch 项目创建
- HDU 4455 Substrings[多重dp]
- 如何设置Eclipse工作区默认编辑宽度
- 豆瓣api开发
- 2-sat(tarjan算法)hdu(1824)
- phpcms输出logo下拉实例