-1

我正在尝试自己学习python。我正在尝试打印二维数组,但运气不佳。

这是代码

rows = 10
colms = 10
grid=[]

for row in range(0,9):
    for colm in range(0,9):
       print(grid[row][colm])

我得到的错误是“列表超出索引”。我厌倦了不同的事情,比如

grid[[rows],[colms]]

但走不远。

我如何打印出像矩阵一样的二维数组

4

1 回答 1

1

grid其中还没有条目,因此任何访问其中任何索引处的成员的尝试都将失败。您必须先用值填充它。

例如:

In [11]: grid = []

In [12]: for i in range(10):
   ....:     row = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
   ....:     grid.append(row)
   ....:

In [13]: grid
Out[13]:
[[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]

In [14]: grid[9][9]
Out[14]: 0

(请注意,您必须将网格中的每一行创建为单独的对象,如果它们都是相同的行对象编辑将导致它们全部被编辑!)

编辑:要输入网格,请执行以下操作:

In [15]: grid[0][0] = int(raw_input("input: "))
input: 1

In [16]: grid
Out[16]:
[[1, 0, 0, 0, 0, 0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]
于 2013-06-12T23:46:00.047 回答