パイソンのfor文について

パイソンの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を実行して、キーと値を取得できるようにします。


エラーが発生せずに実行を終了することが出来ましたので、辞書型のデータがイテラブルオブジェクトであることがわかりました。

同じカテゴリーの記事
マインクラフト用ビジュアルエディタを開発しています。

詳しくはinunosinsi/mcws_blockly - githubをご覧ください。