在迭代x
列表时,我收到索引超出范围的错误消息。应该在代码中修改什么? c值乘以1两次,然后转到前一个值。
for i in range(len(x)):
if len(x) == 1:
a.append(x[i] - w)
c.append((1 + x[i] - a[i])*1)
d.append((1+x[i])*1)
if d[i] > max(c[:]):
f.append(B+a[i])
else:
f.append(B)
else:
a.append(x[i] - w)
c.append((1 + x[i] - a[i])*c(i-1))
d.append((1+x[i])*c(i-1))
if d[i] > max(c[:-1]):
f.append(B+a[i])
else:
f.append(B)
答案 0 :(得分:1)
如果len(x)> 1
c[i-1] # on i=0 it will access c[-1] and if len(c)<1 then it can raise index error
加上如果c是列表更改c(i-1)
到c[i-1]
答案 1 :(得分:0)
有错误
c.append((1 + x[i] - a[i])*c[i-1])
如果列表c为空且len(x)> 1,访问c [i-1]时会出现索引错误,即c [-1],因为它不存在。