python中用for循环一个有五万多条目的大列表,如何缩短运行时间?

[图片] namelist是一个有五万多元素的大列表,现在需要对其中每个元素调用自定义函数select_i,并将每次结果Df(dataframe类型)…
关注者
32
被浏览
23,657

8 个回答

我猜测你的问题可能不在遍历长度大于5万的列表上,而是你的代码写法有问题。遍历列表取出元素,再用index()求其索引序号,这个索引号一定是顺序递增的,根据索引需要做insert,速度要比append慢很多。简单测试一下,确实如此。

import time
def select_i(i):
    return i
NameList = list(range(5000))
Df_s = []
t0 = time.time()
for i in NameList:
    Df_s.insert(NameList.index(i), select_i(i))
t1 = time.time()
for i in range(len(NameList)):