我正在尝试自己学习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]]
但无法走远。
如何打印出像矩阵一样的二维数组
答案 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]]