2014-09-25 46 views
0

當我嘗試運行此代碼,我得到列表分配索引超出範圍的錯誤在該行7列表分配索引超出範圍的Python

import random 
    Matrix = [[0 for x in range(37)] for x in range(37)] 
    for i in range(0,37): 
     for k in range(3,16): 
      for j in range(0,k): 
       y=random.randint(0,37) 
       Matrix[i][y]=1 
    for row in Matrix: 
     print (row) 

我到底做錯了什麼?任何幫助將不勝感激。謝謝。

+3

'randint' * *包括兩個端點。所以當它選擇了37件事情時,因爲你的有效指數是'0 <= i <= 36'。 – roippi 2014-09-25 00:38:43

+0

您必須嘗試索引不存在的位置?錯誤發生時''''''''和''''''的值是什麼? '''Matrix'''的尺寸是多少? – wwii 2014-09-25 00:41:47

回答

0

0 <= random.randint(0,37) <= 37總是爲真。

我的意思是你會37!

Matrix是從有索引0名單列表中未37

,如果你得到了Matrix[i][37],然後你會看到指數超出範圍錯誤的!

FIX

  y=random.randint(0,37) 

  y=random.randint(0,36) 
+0

謝謝你們......就像一個魅力。 – user3330378 2014-09-25 00:55:30