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 う