Pythonで繰り返し処理を行うときに欠かせないのがPython rangeです。
この関数を理解すれば、for文の使い方や数列の生成、逆順ループなどを自在に扱えるようになります。
この記事では、Python range関数の基本から、引数・start・stop・stepの意味、for文での活用例、さらに応用的な使い方までわかりやすく解説します。
基礎構文については、Python range関数の基本と使い方(note.nkmk.me)でも詳しく紹介されています。
range関数とは?Pythonで数列を扱う基本関数
range関数の役割・連続する整数の範囲を作る関数
Python rangeは、指定した範囲の連続する整数を生成する関数です。
たとえば0から9までの数を扱いたい場合、range(10)と書くだけで簡単に作れます。
for i in range(10):
print(i)
出力結果は以下の通りです。
0
1
2
3
4
5
6
7
8
9
代表的な用途・for文での繰り返し処理
range関数は特にfor文と組み合わせて使われることが多く、決まった回数だけ処理を繰り返す際に便利です。
listやtupleと違いrange型オブジェクトを返す特徴
range()が返すのはリストではなく「range型オブジェクト」です。必要に応じてlist()でリスト化できます。
print(list(range(5))) # [0, 1, 2, 3, 4]
range関数の基本構文と引数の意味
range(stop)
range(start, stop)
range(start, stop, step)
- start:開始値(省略時は0)
- stop:終了値(この値の直前まで生成)
- step:増減値(省略時は1)
さらに、Python range()関数の使い方と引数解説(PyNote)でも、step値や開始・終了の扱い方を具体例付きで説明しています。
rangeの基本的な使い方・順方向ループ
for i in range(5):
print(i)
出力:
0
1
2
3
4
Python rangeをlist()で囲むことで、生成される数列を目で確認できます。
numbers = list(range(5))
print(numbers) # [0, 1, 2, 3, 4]
stepを指定して任意の間隔で数列を生成する
正のstep値で間隔を広げる
for i in range(0, 10, 2):
print(i)
出力:
0
2
4
6
8
負のstep値で逆順にカウントする
for i in range(10, 0, -2):
print(i)
出力:
10
8
6
4
2
stepを活かせば、偶数・奇数など特定間隔での柔軟なループ制御が可能です。
rangeオブジェクトの操作と応用
インデックス指定で要素を取得
r = range(5, 10)
print(r[0]) # 5
print(r[3]) # 8
スライスで部分的に取り出す
r = range(0, 10)
print(r[2:7:2]) # range(2, 8, 2)
print(list(r[2:7:2])) # [2, 4, 6]
メモリ効率の良さ・リストとの違い
Python rangeは必要なときに値を逐次生成するため、大量のデータでもメモリをほとんど消費しません。
実践でのrange活用例
for文での繰り返し処理・配列のインデックス操作
colors = ["red", "blue", "green"]
for i in range(len(colors)):
print(f"{i}: {colors[i]}")
条件付きでの逆順ループやスキップ処理
for i in range(10, 0, -1):
if i % 2 == 0:
print(i)
rangeとlen関数を組み合わせた定番パターン
data = ["A", "B", "C", "D"]
for i in range(len(data)):
print(i, data[i])
rangeとlen()の組み合わせは、for文でリストの要素を順に処理する際の定番パターンです。
応用テクニックやメモリ最適化の詳細は、Python range関数の完全ガイド|Fullfrontでも解説されています。
まとめ|range関数を使いこなしてPythonのループを自在に操ろう
- Python rangeは、整数の連続した範囲を生成する基本関数
- for文と組み合わせて使うのが一般的
- step引数を活用すれば、間隔指定や逆順カウントも簡単
- list()化やスライスなどの応用で柔軟な制御が可能
Python rangeを理解すれば、繰り返し処理がぐっと楽になります。
ぜひ自分のコードでも活用して、スマートで効率的なPythonプログラムを書いてみましょう。


