-1

Pythonを独学で勉強しようと思っています。2 次元配列を印刷しようとしていますが、うまくいきません。

ここにコードがあります

rows = 10
colms = 10
grid=[]

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

私が得るエラーは「インデックスからのリスト」です。私は次のようなさまざまなことに疲れました

grid[[rows],[colms]]

しかし、遠くに行くことができませんでした。

行列のような 2 次元配列を出力するにはどうすればよいですか

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 に答える