我一直在学习执行同一任务的不同方法,以及以不同的方式执行同一任务。我可以理解执行使用不同方法的代码所需的时间可能会有不同的执行时间,但我不明白为什么在同一方法中执行相同任务但只是编写不同的代码的总执行时间平均不相同
例如
我能跑:
for sub in original_list:
if sub[0] in to_check:
new_list.append(sub)
在我的一段代码中,我的平均执行时间大约是2.6毫秒
但是,如果我将代码更改为一行代码,如下所示:
new_list = [sub for sub in original_list if sub[0] in to_check]
执行时间平均为2.4毫秒
据我所知,这两者的操作是一样的,因此引出了几个问题
我很想知道这是否有原因
列表理解更快,因为它是针对python运行的优化c代码。尤其要考虑以下几行:
在循环中迭代时,每次python到达该行时,它必须:
locals()
命名空间中查找新的\u列表与列表理解相比,
.append
的“点查找”每次都在进行,而列表理解是从它所附加的结构中知道的相关问题 更多 >
编程相关推荐