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

 更新时间:2015年08月03日 12:19:12   作者:Yi_Zhi_Yu  
这篇文章主要介绍了浅谈Python中列表生成式和生成器的区别,是Python入门学习中的基础知识,需要的朋友可以参考下

列表生成式语法:

[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 2.6.6升级到Python2.7.15的详细步骤

    Python 2.6.6升级到Python2.7.15的详细步骤

    这篇文章主要介绍了Python 2.6.6升级到Python2.7.15的详细步骤,本文分步骤给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • Python中logging模块的用法实例

    Python中logging模块的用法实例

    这篇文章主要介绍了Python中logging模块的用法实例,以实例形式介绍了日志模块logging的用法,具有一定的实用价值,需要的朋友可以参考下
    2014-09-09
  • 学习python需要有编程基础吗

    学习python需要有编程基础吗

    在本篇文章里小编给大家分享的是一篇关于学习python有哪些必要条件,需要的朋友们可以学习下。
    2020-06-06
  • 利用python爬取有道词典的方法

    利用python爬取有道词典的方法

    这篇文章主要介绍了python爬取有道词典的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • Pycharm调试程序技巧小结

    Pycharm调试程序技巧小结

    这篇文章主要介绍了Pycharm调试程序技巧,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • python结合多线程爬取英雄联盟皮肤(原理分析)

    python结合多线程爬取英雄联盟皮肤(原理分析)

    多线程是为了同步完成多项任务,不是为了提高运行效率,而是为了提高资源使用效率来提高系统的效率。这篇文章主要介绍了python爬取英雄联盟皮肤结合多线程的方法,需要的朋友可以参考下
    2021-05-05
  • python实现对图片进行旋转,放缩,裁剪的功能

    python实现对图片进行旋转,放缩,裁剪的功能

    今天小编就为大家分享一篇python实现对图片进行旋转,放缩,裁剪的功能,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-08-08
  • 通俗易懂详解Python基础五种下划线作用

    通俗易懂详解Python基础五种下划线作用

    本来而言,这个问题网上很多资料,但是网上资料都是复制来复制去,很多话大家其实都不是很明白的,或者拿着官方文档翻译过来的,让人看的非常迷糊。今天用通俗好懂表述解释下这几种情况
    2021-10-10
  • Python多线程批量采集图片的代码实现

    Python多线程批量采集图片的代码实现

    这篇文章主要给大家介绍了Python多线程批量采集图片的代码实现,文中通过代码示例讲解的非常详细,具有一定的参考价值,需要的朋友可以参考下
    2024-05-05
  • Python pickle类库介绍(对象序列化和反序列化)

    Python pickle类库介绍(对象序列化和反序列化)

    这篇文章主要介绍了Python pickle类库介绍(对象序列化和反序列化),本文讲解了pickle库的作用、pickle的运行过程、使用实例、修改picklable类型的默认行为等内容,需要的朋友可以参考下
    2014-11-11

最新评论