この記事では、Pythonのrange関数の使い方について解説します。
range関数を使うことで任意の範囲の連続した数列を生成することができます。よくfor文と組み合わせて使用され、任意の回数ループ処理したりします。
それでは、range関数の使い方を学習していきましょう!
range関数とは?
range関数は、引数に整数を取り「rangeオブジェクト」を返します。
rangeオブジェクトは、リストなどのコンテナオブジェクトを使わず引数に渡された整数を元に計算によって数列を生成します。なので、数列の大きさによって使用するメモリのサイズが変わらず、常に一定のコストで使用することができます。
range関数と言いましたがrangeは型です。しかし、関数のように使われるので公式チュートリアルにも「range() 関数」と明記されています。
また、range()はイミュータブルなシーケンス型です。なので、生成したrangeオブジェクトはシーケンス型特有の演算を行うことができます。

それでは、range関数の使い方を見ていきましょう!
range関数の使い方
range関数は以下のように記述します。
range(stop)
range(start, stop[, step])
start | 開始値。この引数が指定されていない場合は0。 |
---|---|
stop | 終了値。 |
step | 数列の加算値。この引数が指定されていない場合は1。 |
0からstopまでの数列 : range(stop)
range()関数に整数を1つだけ渡すことで、0からstopまでの連続した数列を生成することができます。
range(stop: int)
生成される数列の範囲: 0 <= N < stop
サンプル
以下のコードでは、range関数で生成した数列をfor文で出力しています。
for i in range(3):
print(i)
実行結果
0
1
2
マイナスの値を指定する
stopにマイナスの値も指定することができますが、0 < stopではないので数列は生成されません。
r = range(-3)
print(list(r))
実行結果
[]
任意の範囲の数列: range(start, stop)
range関数に整数を2つ渡すことで、startからstopまでの連続した数列を生成することができます。
range(start: int, stop: int)
生成される数列の範囲: start <= N < stop
サンプル
r = range(1, 4)
print(list(r))
実行結果
[1, 2, 3]
マイナスの値を指定する
start < stopであれば、マイナスの範囲の数列も生成することができます。
r = range(-4, -1)
for i in r:
print(i)
実行結果
-4
-3
-2
値の増分: range(start, stop, step)
range()関数に整数を3つ渡すことで、startからstopまでのstep幅の数列を生成することができます。
range(start: int, stop: int, step: int)
サンプル
r = range(0, 12, 2)
for i in r:
print(i)
実行結果
0
2
4
6
8
10
マイナスの値を指定する
stepにマイナスの値を指定する場合は、start > stopになるように値を指定する必要があります。
r = range(-1, -4, -1)
for i in r:
print(i)
実行結果
-1
-2
-3
逆順の数列
step引数にマイナスの値を指定して逆順の数列を生成するととてもわかりにくいです。なので、reversed関数を使って数列を逆順にしましょう!
r = range(0, 12, 2)
for i in reversed(r):
print(i)
実行結果
10
8
6
4
2
0
float型の数列を生成する
range関数では整数型の数列しか生成することしかできません。float型の数列を生成するには「内包表記」または「NumPy」を使います。
内包表現を使う
内包表現を使うことでfloat型の数列を生成することができます。
r = [i / 100 for i in range(90, 100, 2)]
print(r)
実行結果
[0.9, 0.92, 0.94, 0.96, 0.98]
NumPyを使う
NumPyのarange関数を使うことで、float型の数列を生成することができます。
import numpy as np
np.arange(start, stop, step, dtype)
サンプル
import numpy as np
for i in np.arange(0.0, 1.0, 0.2):
print(i)
実行結果
0.0
0.2
0.4
0.6
0.8
参考numpy.arange — NumPy v1.19 Manual
まとめ
この記事では、Pythonのrange関数の使い方を解説しました。
range関数はよくfor文と組み合わせて使われるので覚えておくと便利です!
それでは今回の内容はここまでです!ではまたどこかで〜( ・∀・)ノ