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

软件发布|下载排行|最新软件

当前位置:首页IT学院IT技术

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

Yi_Zhi_Yu   2021-03-21 我要评论
想了解浅谈Python中列表生成式和生成器的区别的相关内容吗,Yi_Zhi_Yu在本文为您仔细讲解Python中的列表生成式和生成器的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点: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

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


猜您喜欢

Copyright 2022 版权所有 软件发布 访问手机版

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 联系我们