浅谈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多线程爬虫简单示例
Mar 04 Python
Python的Django应用程序解决AJAX跨域访问问题的方法
May 31 Python
python3.6 实现AES加密的示例(pyCryptodome)
Jan 10 Python
Python不使用int()函数把字符串转换为数字的方法
Jul 09 Python
浅述python中深浅拷贝原理
Sep 18 Python
十个Python练手的实战项目,学会这些Python就基本没问题了(推荐)
Apr 26 Python
Python 根据日志级别打印不同颜色的日志的方法示例
Aug 08 Python
Django实现WebSSH操作物理机或虚拟机的方法
Nov 06 Python
python列表推导和生成器表达式知识点总结
Jan 10 Python
Python qrcode 生成一个二维码的实例详解
Feb 12 Python
Python 实现3种回归模型(Linear Regression,Lasso,Ridge)的示例
Oct 15 Python
将不规则的Python多维数组拉平到一维的方法实现
Jan 11 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
海贼王:最美的悬赏令!
2020/03/02 日漫
很实用的一个完整email发送程序
2006/10/09 PHP
php对数组排序代码分享
2014/02/24 PHP
php保存信息到当前Session的方法
2015/03/16 PHP
PHP常用字符串操作函数实例总结(trim、nl2br、addcslashes、uudecode、md5等)
2016/01/09 PHP
JavaScript中SQL语句的应用实现
2010/05/04 Javascript
jQuery去掉字符串起始和结尾的空格(多种方法实现)
2013/04/01 Javascript
js Object2String方便查看js对象内容
2014/11/24 Javascript
jQuery 重复加载错误以及修复方法
2014/12/16 Javascript
JavaScript判断一个字符串是否包含指定子字符串的方法
2015/03/18 Javascript
jQuery中的siblings用法实例分析
2015/12/24 Javascript
ReactNative-JS 调用原生方法实例代码
2016/10/08 Javascript
js常用DOM方法详解
2017/02/04 Javascript
使用nodejs爬取前程无忧前端技能排行
2017/05/06 NodeJs
详解jQuery-each()方法
2019/03/13 jQuery
一文读懂ES7中的javascript修饰器
2019/05/06 Javascript
小程序:授权、登录、session_key、unionId的详解
2019/05/15 Javascript
webpack4 配置 ssr 环境遇到“document is not defined”
2019/10/24 Javascript
[03:37]2016完美“圣”典 风云人物:Mikasa专访
2016/12/07 DOTA
[01:05:40]VG vs Newbee 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
Python自动调用IE打开某个网站的方法
2015/06/03 Python
在Django中管理Users和Permissions以及Groups的方法
2015/07/23 Python
Python字典操作详细介绍及字典内建方法分享
2018/01/04 Python
分享Python切分字符串的一个不错方法
2018/12/14 Python
Python面向对象之类的定义与继承用法示例
2019/01/14 Python
Python minidom模块用法示例【DOM写入和解析XML】
2019/03/25 Python
python GUI库图形界面开发之PyQt5线程类QThread详细使用方法
2020/02/26 Python
Python如何实现后端自定义认证并实现多条件登陆
2020/06/22 Python
用CSS3实现背景渐变的方法
2015/07/14 HTML / CSS
整理HTML5移动端开发的常用触摸事件
2016/04/15 HTML / CSS
瑞典Happy Socks美国官网:购买色彩斑斓的快乐袜子
2016/10/19 全球购物
六十岁生日答谢词
2014/01/10 职场文书
汽车4S店销售经理岗位职责
2015/04/02 职场文书
范文之农村基层党建工作报告
2019/10/24 职场文书
Redis安装启动及常见数据类型
2021/04/14 Redis
教你使用Python pypinyin库实现汉字转拼音
2021/05/27 Python