2

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

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(result) 的值不显示,例如 24、31)。怎么能

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

产生 IndexError 异常,如果

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

才不是?

4

1 回答 1

9

您正在访问索引i + i而不是 i + 1

result[i+i][0]=0

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

于 2012-10-15T20:18:49.967 回答