Pythonでタプルを反復処理する方法を徹底解説
Pythonでは、タプルオブジェクトを反復処理(イテレーション)する方法がいくつかあります。最も基本的なのは for 文を使う方法です。Pythonの for 文には、タプルの要素を先頭から順にすべて走査する形式があり、Javaにおける foreach 文と同等の働きをします。
1. for文による基本的な反復処理
for 文の構文は以下のとおりです。
for var in tuple:
stmt1
stmt2
例
次のスクリプトは、タプル内のすべての要素を出力します。ここでは index() メソッドを使って要素の位置も同時に表示しています。
T = (10,20,30,40,50)
for var in T:
print (T.index(var),var)
出力結果
0 10
1 20
2 30
3 40
4 50
2. range()とインデックスを使った反復処理
もうひとつの定番のアプローチは、タプルの長さ分だけ range() で反復し、その値をタプルのインデックスとして利用する方法です。
例
for var in range(len(T)):
print (var,T[var])
この方法は、要素の値だけでなくインデックス番号が必要な場合に便利です。
3. enumerate()を使った反復処理
さらに、タプルから enumerate() オブジェクトを取得して反復処理することもできます。enumerate() は各要素に自動的に連番を付与してくれるため、インデックスと値を同時に扱いたい場合に最適です。
例
for var in enumerate(T):
print (var)
出力結果
このコードも同じ出力結果になります。
(0, 10)
(1, 20)
(2, 30)
(3, 40)
(4, 50)
まとめ
タプルの反復処理には主に3つの方法があります。
- for文で直接反復: シンプルに値だけが必要な場合に最適
- range(len())+インデックス: インデックスを明示的に制御したい場合に有効
- enumerate(): インデックスと値を同時に取得でき、可読性も高い
用途に応じて使い分けることで、より効率的で読みやすいコードを書くことができます。
-
Pythonでネストされた辞書を再帰的に反復処理する方法
Pythonでは、辞書(dict)の中にさらに辞書が入れ子になった「ネストされた辞書」を扱うことがあります。このような多層構造のデータをすべて走査するには、再帰的なアプローチが最も効果的です。 以下は、ネストされた辞書オブジェクトの例です。 D1={1: {2: {3: 4, 5: 6}, 3: {4: 5, 6: 7}}, 2: {3: {4: 5}, 4: {6: 7}}} 再帰関数による反復処理 各キーに対応する値が辞書そのものである場合は、同じ関数を再帰的に呼び出して、より深い階層へと処理を進めます。値が辞書でない場合は、そのキーと値を出力します。 def iterdict(d): &
-
Pythonで辞書を反復処理する2つの方法をわかりやすく解説
Pythonの辞書(dict)オブジェクトを反復処理する方法は主に2つあります。1つ目は、keys()メソッドでキーのリストを取得し、各キーに対応する値を取り出す方法です。keys()メソッドを使った反復処理>>> D1 = {1:a, 2:b, 3:c} >>> for k in D1.keys(): print (k, D1[k]) 1 a 2 b 3 c keys()メソッドは辞書内のすべてのキーを返します。ループ内でキーを変数kに受け取り、D1[k]のように記述することで、そのキーに関連付けられた値へアクセスできます。items()メソッドを