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次元リストを操作することができます。