gpt4 book ai didi

python - Python 迭代哪种方法更快?

转载 作者:太空宇宙 更新时间:2023-11-04 08:08:07 25 4
gpt4 key购买 nike

我正在根据不等于 None 的特定值从一个大型旧列表创建一个新列表。哪种迭代方法更快?

选项 1:

new_list = []
for values in old_list:
if values[4] is not None:
new_list.append(values[4])

选项 2:

new_list = [x for x in old_list if x[4] is not None]

最佳答案

尝试timeit两者。

但第二个是广泛known to be faster .

基本上 maplist comprehension 快,list comprehensionfor loop 快。

网络上有大量关于这个主题的文献。

编辑:

promise 更新会带来实际、有形的结果。这是代码。

import random
import timeit

old_list = [ random.randint(0, 100000) for i in range(0, 100) ]


def floop(old_list):
new_list = []
for value in old_list:
new_list.append(value)
return new_list


def lcomp(old_list):
new_list = [ value for value in old_list ]
return new_list


if __name__=='__main__':
results_floop = timeit.Timer('floop(old_list)', "from __main__ import floop, old_list").timeit()
results_lcomp = timeit.Timer('lcomp(old_list)', "from __main__ import lcomp, old_list").timeit()
print("Function\t\tSeconds elapsed")
print("For loop\t\t{}".format(results_floop))
print("List comp\t\t{}".format(results_lcomp))

记住:timeit 循环调用函数 100 万次并打印耗时(以秒为单位)。像这样阅读执行 100 万次,用了 xx 秒

这是结果。我认为他们自己会说话。

~/python » python3 lists.py
Function Seconds elapsed
For loop 11.089475459069945
List comp 5.985794545034878

关于python - Python 迭代哪种方法更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27711009/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com