我想在python中声明并填充二维数组,如下所示:
def randomNo():
rn = randint(0, 4)
return rn
def populateStatus():
status = []
status.append([])
for x in range (0,4):
for y in range (0,4):
status[x].append(randomNo())
但我总是得到IndexError:list index超出范围异常。有什么想法吗?
答案 0 :(得分:2)
对于status
x
中的行数
for x in range(0,4):
status.append([])
for y in range(0,4):
status[x].append(randomNo())
答案 1 :(得分:2)
试试这个:
def randomNo():
rn = randint(0, 4)
return rn
def populateStatus():
status = {}
for x in range (0,4):
status [x]={}
for y in range (0,4):
status[x][y] = randomNo()
这将为您提供可以访问的二维词典,如val=status[0,3]
答案 2 :(得分:1)
唯一一次添加'行'到状态数组是在外部for循环之前
所以 - status[0]
存在但status[1]
没有
你需要将status.append([])
移动到外部for循环中,然后它将创建一个新的'行'在你尝试填充它之前。
答案 3 :(得分:1)
更多“现代蟒蛇”的做事方式。
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js" async></script>
<script src="{{ 'jGestures.min.js' | asset_url }}" async></script>
它只是一对嵌套的列表推导。
答案 4 :(得分:0)
如果您对生成随机整数数组有疑问,那么numpy模块可能很有用:
import numpy as np
np.random.randint(0,4, size=(4,4))
直接产生
array([[3, 0, 1, 1],
[0, 1, 1, 2],
[2, 0, 3, 2],
[0, 1, 2, 2]])