目次から探す
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]]
このコードでは、matrix1
とmatrix2
の各要素を足し合わせて、新しい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次元リストは様々な分野で応用されており、プログラミングの幅を広げることができます。