HOME
Python の繰り返し処理では、イテラブルオブジェクト (リストやタプルなどから要素をひとつずつ取り出して返すもの) から取り出された要素がなくなるまで繰り返されます。
Python の for
文は、以下のように記述します。
for 変数名 in イテラブルオブジェクト:
処理
イテラブルオブジェクトとは、イテレータ (リストやタプルなどから要素をひとつずつ取り出して返すもの) に対応しているオブジェクトのことです。イテラブルオブジェクトから取り出された要素は、任意の変数名に代入されて処理が行われます。これらの処理は、イテラブルオブジェクトの要素がなくなるまで繰り返されます。
list = ['A', 'B', 'C', 'D']
for item in list:
print(item)
# A
# B
# C
# D
for
文の途中で繰り返し処理を抜ける場合は、break
を使います。
list = ['A', 'B', 'C', 'D']
for item in list:
if item == 'C':
break
print(item)
# A
# B
for
文の途中で処理をスキップしたい場合は、continue
を使います。break
は for
ループ全体が終了しますが、continue
はその要素に対する処理がスキップされ、繰り返し処理は継続されます。
list = ['A', 'B', 'C', 'D']
for item in list:
if item == 'C':
continue
print(item)
# A
# B
# D
for
文による繰り返し処理が正常終了後に何らかの処理を行いたい場合は、else
を使います。
list = ['A', 'B', 'C', 'D']
for item in list:
print(item)
else:
print('for文が正常に終了しました')
# A
# B
# C
# D
# for文が正常に終了しました
break
によって途中で繰り返し処理が終了した場合、else
の処理は実行されません。
list = ['A', 'B', 'C', 'D']
for item in list:
if item == 'C':
break
print(item)
else:
print('for文が正常に終了しました') # 実行されない
# A
# B
continue
の場合は、繰り返し処理が最後の要素まで到達するため、else
の処理は実行されます。
list = ['A', 'B', 'C', 'D']
for item in list:
if item == 'C':
continue
print(item)
else:
print('for文が正常に終了しました')
# A
# B
# D
# for文が正常に終了しました
range()
関数は、指定した範囲の数値(イテラブルなオブジェクト)を返すことができます。range()
関数の構文は以下のとおりです。
range(start, stop[, step])
start
start
の値 (この引数が省略された場合は 0
)stop
stop
の値(この引数は省略できません)step
step
の値 (この引数が省略された場合は 1
)for i in range(3):
print(i)
# 0
# 1
# 2
step
のデフォルト値は 1
ですが、-1
を指定することで逆順にすることができます。逆順で 2
から 0
までの範囲は、以下のように記述できます。
for i in range(2, -1, -1):
print(i)
# 2
# 1
# 0
step
サイズを 2
にすることで偶数の値を取得することも可能です。
for x in range(0, 11, 2):
print(x)
# 0
# 2
# 4
# 6
# 8
# 10
イテラブルオブジェクトの要素とインデックスを同時に取得したい場合は、enumerate()
関数を使います。enumerate()
関数の構文は以下のとおりです。
enumerate(iterable, start=0)
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
イテラブルオブジェクトの要素を逆順で取得したい場合は、reversed()
関数を使います。
list = ['A', 'B', 'C', 'D']
for item in reversed(list):
print(item)
# D
# C
# B
# A
辞書型オブジェクトを 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