6-1. Pythonのfor文によるループ処理


1. ループ処理とは?

繰り返し処理のことをループ処理と言います。

例えば10回計算を繰り返したり、リスト内のデータを全て表示させる時などに使います。

Pythonのfor文のイメージ図


2. for文の書き方

for文はシーケンス型などの反復可能なオブジェクト(イテラブルオブジェクト)に対して繰り返し処理を実施します。

Pythonのシーケンス型については以下のページで解説しています。
▶︎ Pythonのシーケンス型・コレクションについて

  • forの後に変数名を指定、この変数にイテラブルオブジェクトの要素が代入される
  • inの後にイテラブルオブジェクトを設定
  • イテラブルオブジェクトの後に:をつけて改行。インデントをつけて繰り返し処理を記載

for 変数 in イテラブルオブジェクト:
    処理

例えば、リスト内の要素をprint文で表示させる処理は、以下のように書きます。

for x in ['東京', '大阪', '京都']:
    print(x)

>> 東京
>> 大阪 
>> 京都


文字列やタプルや集合でも同様に書くことができます。

# 文字列
for x in 'abc':
    print(x)

>> a
>> b
>> c

# タプル
for x in (1, 3, 5):
    print(x + 10)

>> 11
>> 13
>> 15

# 集合
for x in {5, 10, 15}:
    print(x / 5)

>> 2.0 
>> 1.0 
>> 3.0


3. for文 (辞書)

辞書に対してfor文を使う時は、keys()values()items()を使います。

  • <辞書>.keys() : forで回した時に辞書のkeyが取得できる
  • <辞書>.values() : forで回した時に辞書のvalueが取得できる
  • <辞書>.items() : forで回した時に辞書のkeyとvalueが取得できる

x_dict = {'東京都': 290000, '大阪府': 240000, '京都府': 210000}

# keyを取得 
for k in x_dict.keys():
    print(k)

>> 東京都
>> 大阪府
>> 京都府

# valueを取得 
for v in x_dict.values():
    print(v)

>> 290000
>> 240000
>> 210000

# keyとvalueを取得
for k, v in x_dict.items():
    print(k + ':' + str(v))

>> 東京都:290000
>> 大阪府:240000
>> 京都府:210000


4. for文のネスト (入れ子構造)

for文の中にfor文をいれることで、入れ子構造にすることもできます。
一般的には最大2重ループまでにした方が、良いとされています。

for x in [1, 2, 3]:
    print('=====')
    print(x)
    
    for y in ['a', 'b', 'c']:
        print(y)


>> ======
>> 1 
>> a 
>> b 
>> c 
>> ======
>> 2 
>> a 
>> b 
>> c 
>> =====
>> 3 
>> a 
>> b 
>> c


5. Python公式ドキュメント