本ページはプロモーションが含まれています

Python: 2次元配列の要素をfor文で取得する

Pythonで2次元配列(2次元リスト)の要素を、 for文を使って順番に取得する方法を紹介します。
配列の要素を順番に取得するためには、 行のループと列のループが必要となります。

使用する2次元配列のデータは次の通りです。

1列目2列目
1行目a
2行目b
3行目c

要素の値だけを取得する場合

2次元配列の要素の値だけを取得する(インデックスは取得しない)場合、 次のようなコードになります。
最初のfor文で行をループさせ、 その中で2つ目のfor文を使って列をループさせます。

arr = [
["a", "あ"],
["b", "い"],
["c", "う"]]

# 要素値のみを取得する場合
for a in arr:     # 行のループ
	for v in a:   # 列のループ
		print(v)
実行結果
a
あ
b
い
c
う

要素値とインデックスを取得する場合

要素値だけでなく、要素のインデックスも取得する場合は for文の中でenumerate()関数を使用します。
enumerate()関数は配列(リスト)やタプルの 「インデックスと要素値のペア」を取得できる関数です。
(関連記事: リストやタプルのインデックスと値の両方を順に取得 enumerate()

下のサンプルコードでは、 変数「i」が行のインデックス、 変数「k」が列のインデックス、 変数「v」が要素値となります。

arr = [
["a", "あ"],
["b", "い"],
["c", "う"]]

# enumerate()関数を使う
for i, a in enumerate(arr):
	for k, v in enumerate(a):
		print(i, k, v)
実行結果
0 0 a
0 1 あ
1 0 b
1 1 い
2 0 c
2 1 う
Python