2次元配列を扱う方法(初期化/参照の方法) | Python

※当サイトはアフィリエイト広告を利用しています。

この記事ではPythonにおいて、2次元配列を扱う方法を紹介します
スポンサーリンク


初期化

Pythonで2次元配列を作成するには以下のようにします。
SizeX = 3
SizeY = 2
data1 = [[0 for i in range(SizeX)] for j in range(SizeY)]

参照

要素に参照するには data1[y][x] のように記述します。

以下、サンプルコードです。
SizeX = 3
SizeY = 2

data1 = [[0 for i in range(SizeX)] for j in range(SizeY)]

data1[1][2] = 1

for y in range(0, SizeY):
    for x in range(0, SizeX):
        print(data1[y][x], end="")
    print("")

#Result:
# 000
# 001

その他の初期化方法

以下のように記述しても初期化できますが、注意が必要です(後述します)。
SizeX = 3
SizeY = 2
data2 = [[0]*SizeX]*SizeY
注意点としてはこの記述方法では同じメモリ領域の配列を並べた2次元配列となることです。

同じメモリ領域の配列なので、要素に値を代入したときに他の行にも同時に代入されます。

以下、サンプルコードです。
SizeX = 3
SizeY = 2

data2 = [[0]*SizeX]*SizeY

data2[1][2] = 1

for y in range(0, SizeY):
    for x in range(0, SizeX):
        print(data2[y][x], end="")
    print("")

#Result:
# 001
# 001
[1][2]のみに値を代入しているように見えますが、実際は[0][2]にも値が代入されてしまっていることがわかります。

まとめ

この記事ではPythonにおいて、2次元配列を扱う方法を紹介しました。