Python - 繰り返し処理の書き方

for 文

Python の for 文は、以下のように記述します。

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

イテラブルオブジェクトとは、イテレータ (リストやタプルなどから要素をひとつずつ取り出して返すもの) に対応しているオブジェクトのことです。イテラブルオブジェクトから取り出された要素は、任意の変数名に代入されて処理が行われます。これらの処理は、イテラブルオブジェクトの要素がなくなるまで繰り返されます。

list = ['A', 'B', 'C', 'D']

for item in list:
    print(item)
# A
# B
# C
# D
for 文のサンプル

繰り返し処理を途中で抜ける: break

for 文の途中で繰り返し処理を抜ける場合は、break を使います。

list = ['A', 'B', 'C', 'D']

for item in list:
    if item == 'C':
        break
    print(item)
# A
# B
繰り返し処理を途中で抜ける: break

繰り返し処理を途中でスキップする: continue

for 文の途中で処理をスキップしたい場合は、continue を使います。breakfor ループ全体が終了しますが、continue はその要素に対する処理がスキップされ、繰り返し処理は継続されます。

list = ['A', 'B', 'C', 'D']

for item in list:
    if item == 'C':
        continue
    print(item)
# A
# B
# D
繰り返し処理を途中でスキップする: continue

ループ正常終了後の処理: else

for 文による繰り返し処理が正常終了後に何らかの処理を行いたい場合は、else を使います。

list = ['A', 'B', 'C', 'D']

for item in list:
    print(item)
else:
    print('for文が正常に終了しました')
# A
# B
# C
# D
# for文が正常に終了しました
ループ正常終了後の処理: else

break によって途中で繰り返し処理が終了した場合、else の処理は実行されません。

list = ['A', 'B', 'C', 'D']

for item in list:
    if item == 'C':
        break
    print(item)
else:
    print('for文が正常に終了しました') # 実行されない
# A
# B
ループ正常終了後の処理: else

continue の場合は、繰り返し処理が最後の要素まで到達するため、else の処理は実行されます。

list = ['A', 'B', 'C', 'D']

for item in list:
    if item == 'C':
        continue
    print(item)
else:
    print('for文が正常に終了しました')
# A
# B
# D
# for文が正常に終了しました
ループ正常終了後の処理: else

数値シーケンスの生成: range()関数

range() 関数は、指定した範囲の数値(イテラブルなオブジェクト)を返すことができます。range() 関数の構文は以下のとおりです。

range(start, stop[, step])
range 関数の構文
start
引数 start の値 (この引数が省略された場合は 0)
stop
引数 stop の値(この引数は省略できません)
step
引数 step の値 (この引数が省略された場合は 1)
for i in range(3):
    print(i)
# 0
# 1
# 2
range 関数を使った繰り返し処理

step のデフォルト値は 1 ですが、-1 を指定することで逆順にすることができます。逆順で 2 から 0 までの範囲は、以下のように記述できます。

for i in range(2, -1, -1):
    print(i)
# 2
# 1
# 0
range 関数を使った繰り返し処理

step サイズを 2 にすることで偶数の値を取得することも可能です。

for x in range(0, 11, 2):
    print(x)
# 0
# 2
# 4
# 6
# 8
# 10
range 関数を使った繰り返し処理

リストの要素とインデックスを取得する: enumerate()関数

イテラブルオブジェクトの要素とインデックスを同時に取得したい場合は、enumerate() 関数を使います。enumerate() 関数の構文は以下のとおりです。

enumerate(iterable, start=0)
enumerate 関数を使った繰り返し処理
iterable
イテラブルオブジェクト
start
開始値 (この引数が省略された場合は 0)
list = ['A', 'B', 'C', 'D']

for i, item in enumerate(list):
    print(i, item)
# 0 A
# 1 B
# 2 C
# 3 D

for i, item in enumerate(list, 100):
    print(i, item)
# 100 A
# 101 B
# 102 C
# 103 D
enumerate 関数を使った繰り返し処理

逆順で繰り返し処理を行う: reversed()関数

イテラブルオブジェクトの要素を逆順で取得したい場合は、reversed() 関数を使います。

list = ['A', 'B', 'C', 'D']

for item in reversed(list):
    print(item)
# D
# C
# B
# A
reversed 関数を使った繰り返し処理

辞書型オブジェクトの繰り返し処理: for in

辞書型オブジェクトを for in で繰り返し処理を行うと、辞書のキーが取得できます。

dict = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}

for key in dict:
    print(key)
# key1
# key2
# key3
辞書型オブジェクトの繰り返し処理

キーに対応する値を取得したい場合は、以下のとおり記述します。

dict = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}

for value in dict.values():
    print(value)
# value1
# value2
# value3
辞書型オブジェクトの繰り返し処理

キーと値を両方取得したい場合は、以下のとおり記述します。

dict = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}

for key, value in dict.items():
    print(key, value)
# key1 value1
# key2 value2
# key3 value3
辞書型オブジェクトの繰り返し処理
0
SHARE
Twitter
@murashun
お問い合わせ
murashun@gmail.com
ご質問(マシュマロ)
https://marshmallow-qa.com/murashun
ご支援(Stripe)
https://checkout.stripe.com/