令人费解的python索引错误

时间:2012-10-15 20:17:52

标签: python python-2.7

这是一段python代码(“result”是之前创建的嵌套列表)

for i in range(len(result)-1):
    try:
        result[i][3]=0
        result[i+i][0]=0
    except IndexError:
        print "fail", result[i][3], result[i+1][0], i, len(result)
return result
令我惊讶的是,经常打印“失败”(i,len(结果)的非显示值,例如24,31)。怎么可以

result[i][3]=0
result[i+i][0]=0

生成IndexError异常,如果

print result[i][3], result[i+1][0]

没有?

1 个答案:

答案 0 :(得分:9)

您正在访问索引i + i而非 i + 1

result[i+i][0]=0

这意味着当您到达i // 2 + 1时,您会遇到索引错误,无论您的列表大小如何。