浅谈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 相关文章推荐
Python httplib,smtplib使用方法
Sep 06 Python
python批量修改文件后缀示例代码分享
Dec 24 Python
python实现登陆知乎获得个人收藏并保存为word文件
Mar 16 Python
Python实现屏幕截图的代码及函数详解
Oct 01 Python
Python3如何解决字符编码问题详解
Apr 23 Python
Python使用装饰器进行django开发实例代码
Feb 06 Python
对python中raw_input()和input()的用法详解
Apr 22 Python
Python装饰器用法实例分析
Jan 14 Python
Python3显示当前时间、计算时间差及时间加减法示例代码
Sep 07 Python
python opencv图片编码为h264文件的实例
Dec 12 Python
python实现三阶魔方还原的示例代码
Apr 28 Python
Python如何快速找到多个字典中的公共键(key)
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 或网站服务器日志,并正确配置 PHP 安装最快的解决办法
2010/08/01 PHP
php 批量生成html,txt文件的实现代码
2013/06/26 PHP
ThinkPHP独立分组使用的注意事项
2014/11/25 PHP
PHP.ini安全配置检测工具pcc简单介绍
2015/07/02 PHP
php实现文件预览功能
2017/05/23 PHP
JavaScript入门教程(3) js面向对象
2009/01/31 Javascript
JS:window.onload的使用介绍
2013/11/13 Javascript
JavaScript Serializer序列化时间处理示例
2014/07/31 Javascript
什么是MEAN?JavaScript编程中的MEAN是什么意思?
2014/12/18 Javascript
js判断浏览器版本以及浏览器内核的方法
2015/01/20 Javascript
ES6新特性七:数组的扩充详解
2017/04/21 Javascript
基于input框覆盖掉数字英文的实例讲解
2017/07/21 Javascript
浅谈webpack性能榨汁机(打包速度优化)
2019/01/09 Javascript
Vue 样式切换及三元判断样式关联操作
2020/08/09 Javascript
微信小程序接入vant Weapp组件的详细步骤
2020/10/28 Javascript
[40:03]RNG vs VG 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
PyTorch线性回归和逻辑回归实战示例
2018/05/22 Python
实用自动化运维Python脚本分享
2018/06/04 Python
flask框架视图函数用法示例
2018/07/19 Python
python基于opencv检测程序运行效率
2019/12/28 Python
python re.match()用法相关示例
2021/01/27 Python
巧用HTML5给按钮背景设计不同的动画简单实例
2016/08/09 HTML / CSS
澳大利亚家用电器在线商店:Billy Guyatts
2020/05/05 全球购物
韩国商务邀请函
2014/01/14 职场文书
草船借箭教学反思
2014/02/03 职场文书
大学生优秀自荐信范文
2014/02/25 职场文书
出国留学计划书
2014/04/27 职场文书
政府门卫岗位职责
2014/04/29 职场文书
暑假生活随笔
2015/08/15 职场文书
2019个人工作自我评价范文(3篇)
2019/09/19 职场文书
MongoDB数据库常用的10条操作命令
2021/06/18 MongoDB
django中websocket的具体使用
2022/01/22 Python
如何用六步教会你使用python爬虫爬取数据
2022/04/06 Python
在Python 中将类对象序列化为JSON
2022/04/06 Python
win10蓝屏0xc0000001安全模式进不了怎么办?win10出现0xc0000001的解决方法
2022/08/05 数码科技