我正在尝试用python编写代码。我事先知道清单的大小。
假设列表为l,大小为n。
所以我应该首先初始化长度为n的列表,然后使用for循环将l [i] = i表示i从0到n。
OR
首先初始化空列表然后使用forin循环将项目追加到列表中更好?
我知道这两种方法都会产生相同的结果。我只是想问一个是比另一个更快或更有效。
追加速度更快,因为列表被设计为固有可变的。您可以使用
之类的代码初始化固定大小的列表x = [None]*n
但是这本身需要时间。我编写了一个快速程序来比较速度,如下所示。
import time
def main1():
x = [None]*10000
for i in range(10000):
x[i] = i
print(x)
def main2():
y = []
for i in range(10000):
y.append(i)
print(y)
start_time = time.time()
main1()
print("1 --- %s seconds ---" % (time.time() - start_time))
#1 --- 0.03682112693786621 seconds ---
start_time = time.time()
main2()
print("2 --- %s seconds ---" % (time.time() - start_time))
#2 --- 0.01464700698852539 seconds ---
如您所见,第一种方法实际上在我的计算机上速度明显慢!
如果您现在的列表大小,第一种方法是正确的。您可以使用numpy库将列表设置为任意大小。
import numpy as np
X = np.zeros(n, y) #size of your list
#use your for loop here
for i in range(10):
a[i] = i+1
X.tolist()