手机
当前位置:查字典教程网 >脚本专栏 >python >浅谈Python中列表生成式和生成器的区别
浅谈Python中列表生成式和生成器的区别
摘要:列表生成式语法:[x*xforxinrange(0,10)]//列表生成式,这里是中括号//结果[0,1,4,9,16,25,36,49,6...

列表生成式语法:

[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修改Excel数据的实例代码

python列表操作使用示例分享

python动态监控日志内容的示例

Python 条件判断的缩写方法

Python中__init__和__new__的区别详解

使用python解析xml成对应的html示例分享

python下如何让web元素的生成更简单的分析

python读文件逐行处理的示例代码分享

Python列表推导式的使用方法

Python中用Ctrl+C终止多线程程序的问题解决

精品推荐
分类导航