for
複数の値が保存できるリスト、タプル、辞書、集合のデータ型を紹介しましたが、これらの値を1件ずつ処理できるfor命令があります。
例えば、リストxに3,2,1,5,9の値が保存されている場合は、次のように記述するとリストの値が1件ずつ表示できます。
1 2 3 |
x = [3,2,1,5,9] for i in x: print(i) |
【実行結果】
2行目のfor命令でリストxを指定しています。そして値の個数(5個)繰り返しながら変数iに値が設定されます。
2 |
for i in x: |
【値の設定イメージ】
実行される処理はfor文の次から字下げされた命令です。この例では3行目でリストの値を表示しています。
2 3 |
for i in [3,2,1,5,9]: print(i) |
インデックス
enumerate命令でリストやタプル、辞書のインデックスを取得できます。
リストxに保存されている全てのインデックス、値を表示するには次のように記述します。
1 2 3 |
x = [3,2,1,5,9] for i,v in enumerate(x): print(i,v) |
2行目のenumerate命令でリストxを指定しています。そして変数iにインデックス、変数vに値が設定されていきます。
2 |
for i,v in enumerate(x): |
集合の順番
集合で曜日を定義しました。これをfor命令で1件ずつ表示します。どのような順番で表示されるでしょうか?
1 2 3 |
x= {"月曜日","火曜日","水曜日","木曜日","金曜日", "土曜日","日曜日" } for i in x: print(i) |
結果は次の通りでした。
リストやタプルでは定義されている順番(月曜日,火曜日,水曜日・・・)で表示されます。しかし集合はインデクスを持たないため定義した順番は無視されます。
辞書の値
キーワードに曜日、値に対応する英語を辞書定義しました。これをfor命令で1件ずつ表示すると、
1 2 3 4 5 6 7 8 9 10 11 |
x= {"月曜日":"Monday", "火曜日":"Tuesday", "水曜日":"Wednesday", "木曜日":"Thursday", "金曜日":"Friday", "土曜日":"Saturday", "日曜日":"Sunday" } for i in x: msg = i + "です。" print(msg) |
【実行結果】
キーワードのみしか表示できません。値を呼びだすにはitems命令を使います。
1 2 3 4 5 6 7 8 9 10 11 |
x= {"月曜日":"Monday", "火曜日":"Tuesday", "水曜日":"Wednesday", "木曜日":"Thursday", "金曜日":"Friday", "土曜日":"Saturday", "日曜日":"Sunday" } for k,v in x.items(): msg = k + "の英語は" + v + "です。" print(msg) |
9行目のitems命令で辞書xからキーワード、値を取り出し、変数kにキーワード、変数vに値を設定していきます。
9 |
for k,v in x.items(): |