繁体   English   中英

python:循环vs理解[重复]

python:loop vs comprehension [duplicate]

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

这个问题已经在这里有了答案:

我试图使用列表做一些简单的过程。 从学习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

任何人都可以说出一种找到上述哪种方法更快的方法。还请尝试说明理解力与循环的不同之处。 任何帮助表示赞赏。

1 个回复

您可以使用timeit库,也可以只使用time.time()自己设置时间:

>>> from time import time
>>> def first():
...     ftime = time()
...     _foo = [x ** 2 for x in range(1, 101)]
...     print "First", time()-ftime
... 
>>> def second():
...     ftime = time()
...     _foo = []
...     for x in range(1, 101):
...             _b=[x**2]
...             _foo+=_b
...     print "Second", time()-ftime
... 
>>> first()
First 5.60283660889e-05
>>> second()
Second 8.79764556885e-05
>>> first()
First 4.88758087158e-05
>>> second()
Second 8.39233398438e-05
>>> first()
First 2.8133392334e-05
>>> second()
Second 7.29560852051e-05
>>> 

显然,列表理解的运行速度提高了大约2到3倍。

1 Python映射vs列表理解[重复]

这个问题已经在这里有了答案: 列表理解与地图 10个答案 比较这些时,您认为哪个更直观/更容易阅读? lambda / map方法有什么好处吗? ...

2 Python列表理解与for循环[重复]

这个问题已经在这里有了答案: 打印用户定义的第 2 类 答案 的对象列表 我有一堆类对象,即“玩家”。 当我使用for循环vs LC时,我得到两种不同的行为。 Python 2.7 给我我想要的.. 如果我做 给我... 如果 ...

6 用Python中的循环理解列表推导[重复]

这个问题已经在这里有了答案: “列表理解”是什么意思? 它是如何工作的,我该如何使用? 5个答案 这里是非常新的Python学习者-请保持温柔。 我在使用Python中的列表理解概念时遇到了一些问题,因此我试图用for循环将列表理解代码等同起来。 给了我 ...

10 Python循环vs理解列表vs映射的副作用(即不使用返回值)

TL; DR哪个最好? 注意 :这不是生产代码。 它是在测试套件中运行的代码,因此我更关注易读性/可维护性而不是性能。 不过,我也想知道,如果这是生产代码,那么关于哪个更好的决定(考虑权衡性能/可读性)是否会改变。 如果有所不同,元素“ some_key”的数量将非常少。 上 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM