この記事では目的別にfor文の使い方をまとめています。Python初心者である自分のために作ったチートシートではありますが、少しでもお役に立てれば幸いです。
for文の基本的な使い方
入力
elements = ['a', 'b', 'c']
for element in elements:
print(element)
出力
a
b
c
indexを取得する
入力
elements = ['a', 'b', 'c']
for index, element in enumerate(elements):
print(index, element)
出力
0 a
1 b
2 c
応用: indexの開始番号を変更する
入力
elements = ['a', 'b', 'c']
for index, element in enumerate(elements, 1):
print(index, element)
出力
1 a
2 b
3 c
指定回数ループさせる
入力
for index in range(5):
print(index)
出力
0
1
2
3
4
応用: 開始番号と終了番号を指定する
入力
for index in range(1, 5):
print(index)
出力
1
2
3
4
応用: 番号の増加量を指定する
入力
for index in range(0, 10, 3):
print(index)
出力
0
3
6
9
逆順でループさせる
入力
elements = ['a', 'b', 'c']
for element in reversed(elements):
print(element)
出力
c
b
a
条件を満たしたらfor文内を抜ける
入力
for index in range(0, 5):
if index == 2:
break
print(index)
出力
0
1
条件を満たしたらfor文内の処理をスキップする
入力
for index in range(0, 5):
if index == 3:
continue
print(index)
出力
0
1
3
4
複数のオブジェクトをまとめてループさせる
入力
elements = ['a', 'b', 'c']
values = [10, 20]
for element, value in zip(elements, values):
print(element, value)
出力
a 10
b 20
※ 3つ指定することも可能です
※ 一番少ない要素の数だけ処理が実行されます
for文を抜けた後に処理を実行させる
入力
elements = ['a', 'b', 'c']
for element in elements:
print(element)
else:
print('finish!')
出力
a
b
c
finish!
※ breakでループから抜けるとelse内の処理が走りません
多重ループをスマートに書く
入力
import itertools
elements = ['a', 'b', 'c']
values = [1, 2]
for element, value in itertools.product(elements, values):
print(element, value)
出力
a 1
a 2
b 1
b 2
c 1
c 2
※ itertoolsは標準ライブラリなのでインストールは不要です
※ 3つ指定することも可能です
条件を満たすものをリストで抽出する
入力
values = [1, 2, 3, 4, 5]
result_list = [value for value in values if value % 2 == 0]
print(result_list)
出力
[2, 4]
おまけ
リストの各要素に特定の処理を行う
入力
values = [1, 2, 3, 4, 5]
result_list = list(map(lambda x: x * 2, values))
print(result_list)
出力
[2, 4, 6, 8, 10]