2015-04-26 79 views
0

我有一個問題,在我的代碼只是的Python:索引超出範圍

for i in xrange(len(acid1)): 
     j=0 
     k=0 
     while (j<worksheet.ncols): 
      if (acid1[i].lower()==worksheet.row_values(0)[j+1].lower()): 
       col1=j+1 
       while (k<worksheet.nrows): 
        if (acid2[i].lower()==worksheet.row_values(k+1)[0].lower()): 
         row1=k+1 
         break 
        else: 
         k+=1 
       break 
      else: 
       j+=1 

和線

if (aminokwas1[i].lower()==worksheet.row_values(0)[j+1].lower()): 

我得到一個IndexError:列表索引超出範圍。有人知道原因嗎?我不使用任何可能超出範圍的列表或任何內容。請幫忙。

+2

'aminokwas1'和'worksheet.row_values(0)'看起來像列表給我。 – L3viathan

+4

我在代碼中看不到該行, –

回答

0

j == worksheet.ncols-1,看起來j+1不是worksheet.row_values(0)的有效索引。據推測,你進行j的檢查,因爲worksheet.row_values的索引是0到worksheet.cols - 1

+0

它不適用於j + 1的j。我發現「k = 0」應該在「j」循環的開頭,但它不起作用。 – 0001Osz

+0

對'k'有類似的問題,以及您使用'ncols'和'nrows'作爲'row_values(0)'索引的上限的事實。其中之一可能是錯誤的使用。 – chepner