【Python】for文で2次元配列を扱う方法

【Python】for文で2次元配列を扱う方法

目次

2次元配列とfor文の基本

Pythonでは、リストのリストとして2次元配列を表現できます。for文を使って各要素を処理する基本的な方法を示します。

# 2次元配列の定義
matrix = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
]

# 各行ごとに処理
for row in matrix:
    print(row)

このコードを実行すると、各行がそのまま出力されます。

ネストしたfor文で2次元配列を処理

2次元配列の各要素を1つずつ取得するには、for文をネスト(入れ子)させます。

# 各要素を取得
for row in matrix:
    for element in row:
        print(element, end=" ")
    print()

出力:

1 2 3
4 5 6
7 8 9

インデックスを取得しながらループ処理

enumerate() を使うと、インデックス付きで2次元配列を処理できます。

# インデックス付きでループ
for i, row in enumerate(matrix):
    for j, element in enumerate(row):
        print(f"matrix[{i}][{j}] = {element}")

リスト内包表記を使った2次元配列処理

リスト内包表記を使うと、for文を簡潔に記述できます。

# 2次元配列を1次元に変換
flat_list = [element for row in matrix for element in row]
print(flat_list)

出力:

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

zipを使って列ごとに処理

zip() を使うと、行ではなく列単位で処理できます。

# 列ごとに処理
for col in zip(*matrix):
    print(col)

出力:

(1, 4, 7)
(2, 5, 8)
(3, 6, 9)

NumPyを使った効率的な処理

NumPyを使うと、2次元配列の操作がより簡潔かつ高速になります。

import numpy as np

# NumPy配列を作成
np_matrix = np.array(matrix)

# 転置(行と列を入れ替える)
print(np_matrix.T)

応用例:2次元配列のデータ処理

例えば、2次元配列の各要素を2倍にする処理は以下のように書けます。

# すべての要素を2倍に
new_matrix = [[element * 2 for element in row] for row in matrix]
print(new_matrix)

出力:

[[2, 4, 6], [8, 10, 12], [14, 16, 18]]

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です