パイソンのfor文は繰り返しで処理を行いたい時に使います。
文法は
for 変数 in イテラブルオブジェクト: ␣␣␣␣# 実行するコード
※␣は半角スペース1個分
になっていまして、イテラブルオブジェクト(iterable object)というのは、繰り返し処理の対象となるオブジェクトを指し、リストやタプル等になります。
各イテラブルオブジェクトについて触れていくことにしましょう。
パイソンのfor文で最も使わているであろう
for i in range(5): ␣␣␣␣print(i)
※␣は半角スペース1個分
range関数について見てみます。
始めにrange(5)単体の実行結果を見てみます。
print(range(5))
range(5)
そのままの値が返ってきました。
range関数の実行結果を確認したい場合はlist関数で処理する必要があるそうで、
print(list(range(5))
にして実行してみると、
[0, 1, 2, 3, 4]
リスト型で0〜4までの数字の連番が返ってきました。
試しに上記のfor文のサンプルを下記のように書き換えて実行してみます。
for i in [0, 1, 2, 3, 4]: ␣␣␣␣print(i)
※␣は半角スペース1個分
実行結果はrange関数の時とリストの時で同じになりましたので、range関数やリスト型のデータがイテラブルオブジェクトであることがわかりました。
リスト型は文字列を持つことも可能でう、
for fruit in ["apple", "orange", "banana"]: ␣␣␣␣print(fruit)
※␣は半角スペース1個分
のように使用することも可能です。
for文でタプル型のデータを使ってみます。
for i in (0, 1, 2, 3, 4): ␣␣␣␣print(i)
※␣は半角スペース1個分
エラーが発生せずに実行を終了することが出来ましたので、タプル型のデータがイテラブルオブジェクトであることがわかりました。
for文で集合型のデータを使ってみます。
for i in {0, 1, 2, 3, 4}: ␣␣␣␣print(i)
※␣は半角スペース1個分
エラーが発生せずに実行を終了することが出来ましたので、集合型のデータがイテラブルオブジェクトであることがわかりました。
for文で辞書型のデータを使ってみます。
for key in {"a":"apple", "b":"banana", "c":"cherry"}: ␣␣␣␣print(key)
※␣は半角スペース1個分
実行結果
a b c
今までと同じようにfor文内で値を使おうとすると、キーのみの出力になります。
もし、キーに対応した値を出力したい場合は、
for key, fruit in {"a":"apple", "b":"banana", "c":"cherry"}.items(): ␣␣␣␣print(key) ␣␣␣␣print(fruit)
※␣は半角スペース1個分
辞書の持つメソッドのitemsを実行して、キーと値を取得できるようにします。
エラーが発生せずに実行を終了することが出来ましたので、辞書型のデータがイテラブルオブジェクトであることがわかりました。