【Python】2次元リストの使い方(初期化/追加/参照など)を詳しく解説

目次から探す

2次元リストの応用例

2次元リストは、様々な分野で応用されています。

この章では、2次元リストを用いた行列の演算、画像処理、ゲーム開発の例を紹介します。

行列の演算

2次元リストは、行列の演算にも利用できます。

例えば、行列の和や差、積などの計算が可能です。

以下に、2つの行列の和を計算する例を示します。

matrix1 = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
]

matrix2 = [
    [9, 8, 7],
    [6, 5, 4],
    [3, 2, 1]
]

result = [[0, 0, 0], [0, 0, 0], [0, 0, 0]]

for i in range(len(matrix1)):
    for j in range(len(matrix1[0])):
        result[i][j] = matrix1[i][j] + matrix2[i][j]

print(result)
[[10, 10, 10], [10, 10, 10], [10, 10, 10]]

このコードでは、matrix1matrix2の各要素を足し合わせて、新しい2次元リストresultに格納しています。

画像処理

2次元リストは、画像処理にも適用できます。

例えば、グレースケール画像は、各ピクセルの明るさを表す2次元リストとして表現できます。

以下に、画像の明るさを反転させる例を示します。

image = [
    [255, 128, 64],
    [32, 0, 32],
    [64, 128, 255]
]

inverted_image = [[0, 0, 0], [0, 0, 0], [0, 0, 0]]

for i in range(len(image)):
    for j in range(len(image[0])):
        inverted_image[i][j] = 255 - image[i][j]

print(inverted_image)
[[0, 127, 191], [223, 255, 223], [191, 127, 0]]

このコードでは、imageの各要素を255から引いて、新しい2次元リストinverted_imageに格納しています。

ゲーム開発

2次元リストは、ゲーム開発にも利用されます。

例えば、2次元のマップデータを表現する際に、2次元リストを使うことができます。

以下に、2次元のマップデータを表示する例を示します。

#  # が壁
#  . が移動可能なマス
map_data = [
    ['#', '#', '#', '#', '#'],
    ['#', '.', '.', '.', '#'],
    ['#', '.', '#', '.', '#'],
    ['#', '.', '.', '.', '#'],
    ['#', '#', '#', '#', '#']
]

for row in map_data:
    for cell in row:
        print(cell, end=' ')
    print()
# # # # #
# . . . #
# . # . #
# . . . #
# # # # #

このコードでは、map_dataを2次元リストで表現し、#は壁、.は通路を表しています。

そしてforループを使って、マップデータを表示しています。

以上のように、2次元リストは様々な分野で応用されており、プログラミングの幅を広げることができます。

1 2 3 4 5 6

目次から探す