我是python的新手。我尝试使用差异方法处理数据(以下是 g ),该方法会从其他数组中减去一个数组。我有以下代码。代码1和代码2之间的区别是:代码1为list预先分配了一个空间,并在循环中替换每个值。 代码2首先仅定义一个空列表,然后将数据循环添加到已定义列表中。结果是一样的。但是,我对python不熟悉,也不知道哪个是好的。有人可以给我个建议吗?或对此代码进行更完善的修改?
BR XJ
#Same part:
g = range(1,12)
width = [0.1, 0.1, 0.1, 0.2, 0.2, 0.2, 0.3, 0.3, 0.3]
length = [1, 2, 3, 1, 2, 3, 1, 2, 3]
width = set(width)
length = set(width)
nr_w = len(width)
nr_l = len(length)
#different parts:
# %%
#Code 1:
i = 0
g_new_1 = [0]*nr_w*(nr_l-1) # preallocating
for i_w in range(nr_w):
for i_l in range(nr_l):
if i_l != 0:
g_new_1[i] = g[i_w*nr_l+i_l] - g[i_w*nr_w]
i=i+1
# %%
#Code 2:
g_new_2 = []
for i_w in range(nr_w):
for i_l in range(nr_l):
if i_l != 0:
g_new_2.append( g[i_w*nr_l+i_l] - g[i_w*nr_w] )
print(g_new_1 == g_new_2)