2017-07-03 80 views
-1

我有一個程序,在稱爲小狗的二維數組中尋找一個特定的ID,當我這樣做,我的程序崩潰與列表索引超出範圍錯誤。這裏是代碼的有關章節:列表索引超出範圍錯誤在Python - 二維數組

for i in range(1,len(pups)): # start from 1 as the first row contains the labels 
    if pups[i][0]==ID: 
     report=pups[i] 
     pups.pop(i) 
     succesful=True 

我在蟒蛇新的,所以如果我犯了一個愚蠢的錯誤,我會很高興,如果你能告訴我 - 在此先感謝。

+2

不要變異爲你通過它迭代列表('pups'在這種情況下) – CoryKramer

+1

python註釋字符是'#' – Will

+0

哦,我看到了 - 謝謝你的回答 –

回答

-1

你現在正在做的是在迭代它時刪除列表中的元素。您的列表大小不斷縮小,而您在相同的範圍內迭代。您最終會遇到您試圖引用的索引實際上超出範圍的情況。

如果您希望基於某些謂詞過濾掉你的列表,你可以用一個列表理解,這樣的:

filtered_pups = [pup for pup in pups if pup[0] == ID]