这里是一段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(result),例如 24、31)。怎么可以
result[i][3]=0
result[i+i][0]=0
产生 IndexError 异常,如果
print result[i][3], result[i+1][0]
不是吗?
最佳答案
您正在访问索引 i + i
,不是 i + 1
:
result[i+i][0]=0
这意味着当您到达 i//2 + 1
时,无论列表的大小如何,您都会遇到索引错误。
关于python - 令人费解的python索引错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12903320/