この記事では、Pythonのrange()関数の使い方を解説します。
range()
を使うことで任意の範囲の数列を生成することができます。生成した数列は、for
文と組み合わせて任意の回数だけループ処理したり、リストに変換したりできます。
それでは、range()
関数の使い方を見ていきましょう!
先ほどからrangeのことを関数と言っていますが本当はクラスです。関数のように使われているrange()
は、range
クラスのコンストラクタです。
range()
を実行するとrangeオブジェクト
を生成します。
r = range(0)
print(type(r))
実行結果
<class 'range'>
rangeオブジェクトは、リストなどのコンテナオブジェクトを使わず、引数に渡された整数を元に計算によって数列を生成します。なので、数列の大きさによって使用するメモリのサイズが変わらず、常に一定のコストで使用することができます。
さらにrangeは、イミュータブルなシーケンス型です。なので、生成したrange
オブジェクトは、シーケンス型特有の演算を行うことができます。
Linkシーケンスの使い方と特徴を解説
この記事では、以下のようにrange()
関数で生成したrange
オブジェクトをlist()
を使ってリストに変換し、結果を確認していきます。
r = range(3)
print(list(r)) # [0, 1, 2]
これらのことを踏まえた上でrange()
関数の使い方を見ていきましょう!
range()
関数の書式は以下の通りです。
range(stop)
range(start, stop[, step])
定義されている引数は以下のような感じです。どの引数も整数のみが指定できます。
start | 開始値。指定されていない場合は0。 |
---|---|
stop | 終了値。 |
step | 数列の加算値。指定されていない場合は1。 |
range()
関数にstop
引数のみを指定することで0 <= N < stop
の範囲の連続した数列を生成することができます。
r = range(3)
print(list(r)) # [0, 1, 2]
r = range(5)
print(list(r)) # [0, 1, 2, 3, 4]
# 負の値を指定すると空となる
r = range(-3)
print(list(r)) # []
range()
関数にstart
引数とstop
引数を指定することでstart <= N < stop
までの連続した数列を生成することができます。
r = range(1, 4)
print(list(r))
r = range(5, 10)
print(list(r))
実行結果
[1, 2, 3]
[5, 6, 7, 8, 9]
start < stop
であれば負の数列を生成することができます。
r = range(-4, -1)
print(list(r))
r = range(-2, 3)
print(list(r))
実行結果
[-4, -3, -2]
[-2, -1, 0, 1, 2]
range()
関数にstart
、stop
、step
引数を指定することでstart ~ stop
までのstep
幅の数列を生成することができます。
# デフォルトは 1
r = range(0, 10, 1)
print(list(r)) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
r = range(0, 10, 2)
print(list(r)) # [0, 2, 4, 6, 8]
r = range(0, 10, 3)
print(list(r)) # [0, 3, 6, 9]
step
引数に負の値を指定することで逆順の数列を生成可能です。その場合、start > stop
になるように値を指定する必要があります。
r = range(-1, -4, -1)
print(list(r)) # [-1, -2, -3]
r = range(3, -3, -2)
print(list(r)) # [3, 1, -1]
この記事では、Pythonのrange()関数の使い方を解説しました。
range()
関数は、for
文と組み合わせてループ処理されるので覚えておくと便利です!
それでは今回の内容はここまでです!ではまたどこかで〜( ・∀・)ノ
View Comments