我有一段代码,我尝试在特定索引处添加数组中的元素。
N_5min = np.zeros(100)
x = [10, 20, 30, 40]
print N_5min
x1 = [int(i) for i in x]
ls_5min = N_5min.tolist()
print len(ls_5min)
l = 1
for i in range(len(x1)):
ls_5min.append(ls_5min.insert((x1[i]+ l), 10)) # Adds element at the x[i]th position incremented by 'l'
l = l+1
print (ls_5min)
这里我将数字10插入到索引11,22,33和44的零数组中。所以现在列表ls_5min的长度应该是104.但我的长度为108,最后4元素是'无'。为什么长度为108而不是104?
答案 0 :(得分:2)
您需要替换
ls_5min.insert(x1[i]+ l, 10)
通过
<Remittance>
<R A01="R" A02="14155304" A03="36132.49" A04="" A05="36132.49" A06="" A07="" />
<N A01="N" A02="Hi" A03="" A04="" A05="" A06="" A07="" />
<N A01="N" A02="This" A03="" A04="" A05="" A06="" A07="" />
<N A01="N" A02="is" A03="" A04="" A05="" A06="" A07="" />
<N A01="N" A02="concat" A03="" A04="" A05="" A06="" A07="" />
</Remittance>
insert命令将一个项添加到列表中,并返回None。然后,append命令在列表的末尾添加返回的None。
答案 1 :(得分:1)
因为在每次迭代中,您都会将插入函数的返回值(默认值为None )附加到ls_5min。因此,您插入一个值并在每次迭代中向ls_5min附加一个none。所以长度是108而不是104。
你需要改变
ls_5min.append(ls_5min.insert((x1[i]+ l), 10))
到
ls_5min.insert((x1[i]+ l), 10)