如何使用python打印像矩阵一样的二维数组。

时间:2013-06-12 23:43:52

标签: python

我正在尝试自己学习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]]

但无法走远。

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

1 个答案:

答案 0 :(得分: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]]