2014-09-25 55 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