这是一段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]
没有?
答案 0 :(得分:9)
您正在访问索引i + i
,而非 i + 1
:
result[i+i][0]=0
这意味着当您到达i // 2 + 1
时,您会遇到索引错误,无论您的列表大小如何。