【发布时间】:2015-03-31 05:54:06
【问题描述】:
我试图用列表做一些简单的程序。 从《学习python》这本书中,我看到了使用推导式的方法。 好吧,我也知道循环可以代替它。 现在我真的很想知道哪个更快,循环或理解。 这些是我的程序。
a = []
for x in range(1, 101):
a.append(x)
这会将a 设置为 [1, 2, 3, ......, 99, 100]
现在这就是我对理解所做的。
[x ** 2 for x in a]
这就是我对循环所做的。
c = []
for x in a:
b=[x**2]
c+=b
任何人都可以说出一种方法来找到上述哪个更快。还请尝试解释理解与循环的不同之处。 任何帮助表示赞赏。
【问题讨论】:
-
列表推导往往要快一些。这个问题有一些底层技术细节:stackoverflow.com/q/22108488/1558022
-
老兄,不要问哪个更快,只需测量它。
-
构造额外列表和使用列表添加的开销将比列表理解或
list.append(x**2)慢但是正如提到的带有追加的循环和列表理解之间的区别往往有利于理解,但不是很多。
标签: python list loops python-3.x