Python: forループにstep2やstep3を指定する

Pythonのforループでstep(間隔)を指定したい場合、 rangeオブジェクトを使うと便利です。

rangeオブジェクトはリストなどと同じくイテラブルなオブジェクトなので forループで使用することができ、 次のようにrange()関数の第3引数にステップを指定できます。

range(開始, 終了, ステップ)

ステップに「2」を指定すると2ずつ増加し、 ステップに「3」を指定すると3ずつ増加します。

(関連記事:rangeオブジェクトとは、生成方法や使い方

stepに「2」を指定

次のサンプルコードではstepに「2」を指定しています。 ですから0から始まって「0, 2, 4」というように2ずつ変数 iの値が増えていきます。

# step 2を指定
for i in range(0, 5, 2):
	print(i)

# 実行結果
0
2
4

stepに「3」を指定

stepに「3」を指定した場合は「0, 3, 6」というように3ずつ増えていきます。

for i in range(0, 7, 3):
	print(i)

# 実行結果
0
3
6

リストの値をstep「2」で取得

リストの値をstep「2」で取得したい場合、 range()関数の第2引数に「リストの要素数」を指定します。 要素数はlen()関数を使います。

次のサンプルコードでは、リスト liの要素をstep「2」で取得・表示しています。 変数 iはインデックスとして利用するのでリストの値は「li(i)」で取得可能です。 print文でインデックスとリストの要素値を同時に表示しています。

li = ["a", "b", "c", "d", "e", "f"]

for i in range(0, len(li), 2):

	print(i, li[i])

# 実行結果
0 a
2 c
4 e
Python