2012-10-15 27 views
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 

其中,我驚訝的是,經常打印「失敗」(與非暴露值對於我,len(結果),例如24,31)。

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

怎麼能生產出IndexError例外,如果

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

不?

+5

3 upvotes for this? –

回答

9

您正在訪問的指數i + ii + 1

result[i+i][0]=0 

這意味着你的時間達到i // 2 + 1你有一個索引錯誤,你的列表的大小什麼的。

+2

鷹眼。接得好。 – mgilson

+0

我很愚蠢;( – user8268