Python--生成器
来源:互联网 发布:各层网络协议 编辑:程序博客网 时间:2024/06/07 03:23
通过列表生成式,我们可以直接创建一个列表。但是,受到内存限制,列表容量肯定是有限的。而且,创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素,那后面绝大多数元素占用的空间都白白浪费了。
所以,如果列表元素可以按照某种算法推算出来,那我们是否可以在循环的过程中不断推算出后续的元素呢?这样就不必创建完整的list,从而节省大量的空间。在Python中,这种一边循环一边计算的机制,称为生成器:generator。
要创建一个generator,有很多种方法。第一种方法很简单,只要把一个列表生成式的[]改成(),就创建了一个generator:
要创建一个generator,有很多种方法。第一种方法很简单,只要把一个列表生成式的[]改成(),就创建了一个generator:
L = [x * x for x in range(10)]
L
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
g = (x * x for x in range(10))
g
0 0
- Python 生成器
- Python生成器
- python生成器
- python 生成器
- python生成器
- python生成器
- python生成器
- python生成器
- python 生成器
- python生成器
- python 生成器
- python生成器
- python 生成器
- Python--生成器
- python 生成器
- Python 生成器
- python-生成器
- Python生成器
- Friendly ARM开发板安装Linux系统教程
- 进制转换,16到10,10进制到12进制_华为SO挑战赛试题2015年8月
- 优秀项目经理应备技能08-项目管理的技能
- Mysql主从复制与读写分离闲谈
- Handle 消息传递机制知识点汇总
- Python--生成器
- LEETCODE-Add Binary
- Windows支持的4种类型的同步对象:临界区、互斥量、事件和信号量
- A1 = ? HDU 杭电2086 【数学】
- Mac下git的安装与配置
- 软件测试学习随记
- Cglib 与 JDK动态代理的运行性能比较
- 24个设计模式学习
- Cocos2d-x中Vector容器以及实例介绍