浅谈Python中列表生成式和生成器的区别


Posted in Python onAugust 03, 2015

列表生成式语法:

[x*x for x in range(0,10)] //列表生成式,这里是中括号
//结果 [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
(x*x for x in range(0,10)) //生成器, 这里是小括号
//结果 <generator object <genexpr> at 0x7f0b072e6140>

二者的区别很明显:
一个直接返回了表达式的结果列表, 而另一个是一个对象,该对象包含了对表达式结果的计算引用, 通过循环可以直接输出

g = (x*x for x in range(0,10))
for n in g:
  print n

结果

0
1
4
9
16
25
36
49
64
81

    当表达式的结果数量较少的时候, 使用列表生成式还好, 一旦数量级过大, 那么列表生成式就会占用很大的内存,
    而生成器并不是立即把结果写入内存, 而是保存的一种计算方式, 通过不断的获取, 可以获取到相应的位置的值,所以占用的内存仅仅是对计算对象的保存

Python 相关文章推荐
详解Django通用视图中的函数包装
Jul 21 Python
pycharm下查看python的变量类型和变量内容的方法
Jun 26 Python
Selenium chrome配置代理Python版的方法
Nov 29 Python
python实现全盘扫描搜索功能的方法
Feb 14 Python
python爬取微信公众号文章的方法
Feb 26 Python
Python中@property的理解和使用示例
Jun 11 Python
python+jinja2实现接口数据批量生成工具
Aug 28 Python
TensorFlow tf.nn.conv2d实现卷积的方式
Jan 03 Python
Django 博客实现简单的全文搜索的示例代码
Feb 17 Python
解决django xadmin主题不显示和只显示bootstrap2的问题
Mar 30 Python
python3列表删除大量重复元素remove()方法的问题详解
Jan 04 Python
Django项目如何正确配置日志(logging)
Apr 29 Python
详解Python3中的Sequence type的使用
Aug 01 #Python
将Python代码嵌入C++程序进行编写的实例
Jul 31 #Python
Python制作数据导入导出工具
Jul 31 #Python
简单理解Python中的装饰器
Jul 31 #Python
python简单分割文件的方法
Jul 30 #Python
Python读取网页内容的方法
Jul 30 #Python
python查看FTP是否能连接成功的方法
Jul 30 #Python
You might like
用Php实现链结人气统计
2006/10/09 PHP
Linux下实现PHP多进程的方法分享
2012/08/16 PHP
Laravel框架查询构造器 CURD操作示例
2019/09/04 PHP
JavaScript 异步调用框架 (Part 5 - 链式实现)
2009/08/04 Javascript
js操作二级联动实现代码
2010/07/27 Javascript
开发插件的两个方法jquery.fn.extend与jquery.extend
2013/11/21 Javascript
推荐5 个常用的JavaScript调试技巧
2015/01/08 Javascript
一道关于JavaScript变量作用域的面试题
2016/03/08 Javascript
深入理解JavaScript中的块级作用域、私有变量与模块模式
2016/10/31 Javascript
JavaScript中浅讲ajax图文详解
2016/11/11 Javascript
jQuery加载及解析XML文件的方法实例分析
2017/01/22 Javascript
实例分析nodejs模块xml2js解析xml过程中遇到的坑
2017/03/18 NodeJs
JavaScript中offsetWidth的bug及解决方法
2017/05/17 Javascript
vue中SPA单页面应用程序详解
2017/11/07 Javascript
Vue下滚动到页面底部无限加载数据的示例代码
2018/04/22 Javascript
React Navigation 使用中遇到的问题小结
2018/05/08 Javascript
ES6基础之解构赋值(destructuring assignment)
2019/02/21 Javascript
微信小程序用户授权弹窗 拒绝时引导用户重新授权实现
2019/07/29 Javascript
package.json中homepage属性的作用详解
2020/03/11 Javascript
[01:11:46]DOTA2-DPC中国联赛 正赛 iG vs Magma BO3 第一场 2月23日
2021/03/11 DOTA
flask-restful使用总结
2018/12/04 Python
解决python Markdown模块乱码的问题
2019/02/14 Python
Python字典添加,删除,查询等相关操作方法详解
2020/02/07 Python
施华洛世奇德国官网:SWAROVSKI德国
2017/02/01 全球购物
Camille Jewelry官网:现代女性时尚首饰
2019/07/07 全球购物
数学专业毕业生自荐信
2013/11/10 职场文书
读书伴我成长演讲稿
2014/05/07 职场文书
给校长的建议书100字
2014/05/16 职场文书
党课心得体会范文
2014/09/09 职场文书
公司收款委托书范本
2014/09/20 职场文书
2014年质检员工作总结
2014/11/18 职场文书
2014年小班保育员工作总结
2014/12/23 职场文书
工程合作意向书范本
2015/05/09 职场文书
教师教育心得体会
2016/01/19 职场文书
python神经网络编程之手写数字识别
2021/05/08 Python
cypress测试本地web应用
2022/06/01 Javascript