いろんなループ処理、for文の基本構成
文字列の要素を指定するインデックスが違うだけなのに、何行も同じことを書いている。
これを書くのに「面倒くさいなぁ」と思う人がほとんどのはずです。
繰り返し処理が威力を発揮する場面の一つがこうした場合である。
Pythonでは次のコードで実現できます。
for 変数 in イテラブルオブジェクト:
実行する文 ブロック
イテラブルオブジェクトから要素を順につ取得しつつ、イテラブルオブジェクトの要素の数だけその後に記述されたブロックの中の文を順に実行します。複数の文を実行させたい場合にはブロック内に記述してください。
なおイテラブルオブジェクトとは要素を順番に取り出すことができるオブジェクトのことで、文字列、リスト、タプル、辞書などがイテラブルオブジェクトです。
for 変数 in イテラブルオブジェクト:
実行する文1
実行する文2
実行する文3
Python ではブロックをインデントを使って定義します。
mylist = ["Orange", "Peach", "Lemon"]
for val in mylist:
print(val)
print("End")
このように for 文で指定したイテラブルオブジェクトの要素の数だけ繰り返しが行われます。
4つの単語がmylistという変数に格納されています。
それをfor文にてmylistから単語を一つ取り出し、valに代入します。
printされるのはOrange。
その繰り返しなので、次はPeach、次はLemon。
簡単やね?
それでは次のサンプルコードを見てみましょう。
mylist = ["Orange", "Peach", "Lemon", "Apple"]
for val in mylist:
print("value:" + val)
>> value:Orange
>> value:Peach
>> value:Lemon
>> value:Apple
mydict = {"L":"Lemon", "O":"Orage", "G":"Grapes"}
for mykey, myvalue in mydict.items():
print("key:" + mykey + ", value:" + myvalue)
>> key:L, value:Lemon
>> key:O, value:Orage
>> key:G, value:Grapes
for 文を使ってリストおよび辞書のオブジェクトから要素を 1 つずつ取得し画面に出力しました。
for文の最後に実行される処理を記述する(for..else文)
for 文はイテラブルオブジェクトの要素の数だけ繰り返し処理を行いますが、全ての要素を取得したあとに最後に実行される処理を else 節のあとに記述することができます。
サンプルコード
次のサンプルを見てみましょう。
count = 0
mylist = ["Orange", "Peach", "Lemon", "Apple"]
for val in mylist:
print("value:" + val)
count += 1
else:
print("要素の数 = " + str(count))
> value:Orange
>> value:Peach
>> value:Lemon
>> value:Apple
>> 要素の数 = 4
else 節を使って for 文の最後に実行される処理を記述しました。
Python で繰り返し処理を行う時に利用できる for 文の使い方について解説しました。