Python3 range() 関数の使い方
Python3 range() 関数が返すのは反復可能オブジェクト(型はオブジェクト)であり、リスト型ではありません。そのため、printで表示してもリストは表示されません。
Python3 list() 関数はオブジェクトイテレータで、range() が返す反復可能オブジェクトをリストに変換でき、返される変数の型はリストです。
Python2 range() 関数返すのはリストです。
関数の構文
range(stop) range(start, stop[, step])
パラメータの説明:
- start: カウントは start から始まります。デフォルトは 0 から始まります。たとえば range(5) は次と同等です:range(0, 5)
- stop: カウントは stop で終了しますが、stop は含みません。例:range(0, 5) は [0, 1, 2, 3, 4] で 5 は含まれません。
- step:ステップ幅、デフォルトは1。例:range(0, 5) は range(0, 5, 1) と同等です。
例
開始値と終了値だけを指定した場合、ステップ幅はデフォルトで 1 になります:
例
for number in range(1, 6):
print(number)
print(number)
出力結果は:
1 2 3 4 5
1 つの引数だけを指定すると、0 から始まる整数シーケンスを生成し、引数は終了値、ステップ幅はデフォルトで 1 になります:
例
for number in range(6):
print(number)
print(number)
出力結果は:
0 1 2 3 4 5
ステップ幅を指定して、毎回異なる量を増やすことができます:
例
for number in range(1, 6, 2):
print(number)
print(number)
出力結果は:
1 3 5
注意:終了値 6 は含まれません。
また、ステップ幅に負の数を使用すると、終了値から逆順にシーケンスを生成できます:
例
for number in range(6, 1, -1):
print(number)
print(number)
出力結果は:
6 5 4 3 2
注意:ステップ幅に負の数を使用する場合、開始値は終了値より大きくなければなりません。
整数シーケンスを生成するだけで、for ループでそれを走査する必要がない場合は、range() 関数の戻り値をリストまたはタプルに変換できます。例えば:
以下は整数リストを生成します:
例
>>> numbers = list(range(1, 6))
>>> numbers
[1, 2, 3, 4, 5]
>>> numbers
[1, 2, 3, 4, 5]
以下は整数タプルを生成します:
例
>>> numbers = tuple(range(1, 6))
>>> numbers
(1, 2, 3, 4, 5)
>>> numbers
(1, 2, 3, 4, 5)
Python3 組み込み関数