在for循环中,我收到索引超出范围错误

时间:2017-08-31 07:25:45

标签: python list range iteration

在迭代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)

2 个答案:

答案 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],因为它不存在。