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

目次から探す

2次元リストの要素の参照

2次元リストの要素にアクセスする方法には、インデックスを使った参照、スライスを使った参照、forループを使った参照の3つの方法があります。

それぞれの方法を詳しく見ていきましょう。

インデックスを使った参照

2次元リストの要素にアクセスするには、インデックスを使って行と列の位置を指定します。

以下の例では、2次元リストmatrixの要素をインデックスを使って参照しています。

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

# 2行目(インデックス1)の3列目(インデックス2)の要素を参照
element = matrix[1][2]
print(element)  # 結果: 6

スライスを使った参照

2次元リストの一部を切り出すには、スライスを使って行と列の範囲を指定します。

以下の例では、2次元リストmatrixの一部をスライスを使って参照しています。

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

# 1行目から2行目(インデックス0~1)、2列目から3列目(インデックス1~2)の要素を参照
sub_matrix = [row[1:3] for row in matrix[0:2]]
print(sub_matrix)  # 結果: [[2, 3], [5, 6]]

forループを使った参照

2次元リストの要素を順番に処理するには、forループを使って行と列のインデックスを繰り返し処理します。

以下の例では、2次元リストmatrixの要素をforループを使って参照しています。

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

# forループを使って要素を参照
for i in range(len(matrix)):
    for j in range(len(matrix[i])):
        print(matrix[i][j], end=' ')
    print()  # 改行

# 結果:
# 1 2 3
# 4 5 6
# 7 8 9

これらの方法を組み合わせることで、2次元リストの要素を自由に参照・操作することができます。

2次元リストを使いこなして、効率的なプログラムを作成しましょう。

2次元リストの要素の更新

2次元リストの要素を更新する方法には、インデックスを使った更新、forループを使った更新、リスト内包表記を使った更新の3つの方法があります。

それぞれの方法を詳しく見ていきましょう。

インデックスを使った更新

インデックスを使って2次元リストの要素を更新する方法は、最もシンプルで直感的です。

リスト名[行のインデックス][列のインデックス] = 新しい値 の形式で指定します。

例えば、以下の2次元リストがあるとします。

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

このリストの2行目(インデックス1)の3列目(インデックス2)の要素を10に更新したい場合、以下のように記述します。

matrix[1][2] = 10
print(matrix)
[
    [1, 2, 3],
    [4, 5, 10],
    [7, 8, 9]
]

forループを使った更新

forループを使って2次元リストの要素を更新する方法は、特定の条件に合致する要素を一括で更新する際に便利です。

例えば、すべての要素を2倍にしたい場合などです。

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

for i in range(len(matrix)):
    for j in range(len(matrix[i])):
        matrix[i][j] *= 2

print(matrix)
[
    [2, 4, 6],
    [8, 10, 12],
    [14, 16, 18]
]

リスト内包表記を使った更新

リスト内包表記を使って2次元リストの要素を更新する方法は、コードを短く書くことができるため、簡潔に記述したい場合に便利です。

例えば、すべての要素を2倍にしたい場合、以下のように記述します。

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

matrix = [[element * 2 for element in row] for row in matrix]

print(matrix)
[
    [2, 4, 6],
    [8, 10, 12],
    [14, 16, 18]
]

このように、2次元リストの要素の更新には、インデックスを使った更新、forループを使った更新、リスト内包表記を使った更新の3つの方法があります。

それぞれの方法を使い分けることで、効率的に2次元リストを操作することができます。

1 2 3 4 5 6

目次から探す