Pythonで数値の範囲を指定して反復処理(range)
この記事ではPythonのrange関数について解説します。range関数は数値のシーケンスを生成し、forループなどでの反復処理に用いられます。開始値、終了値、ステップ値の指定方法、注意点などを具体例とともに説明します。
目次
range関数の基本的な使い方
range関数は、指定した範囲の数値のシーケンスを生成します。最も基本的な使い方は、終了値のみを指定する方法です。この場合、シーケンスは0から終了値-1までの整数を生成します。
for i in range(5):
print(i)
#出力: 0 1 2 3 4
上記のコードでは、0から4までの数値が順に表示されます。
list(range(5)) #出力: [0, 1, 2, 3, 4]
range関数の戻り値はrangeオブジェクトです。このオブジェクトをlist()関数でリストに変換することができます。
開始値の指定
range関数では、開始値と終了値を指定することもできます。開始値はシーケンスの最初の値となり、終了値はシーケンスに含まれない値となります。
for i in range(2, 5):
print(i)
#出力: 2 3 4
上記のコードでは、2から4までの数値が順に表示されます。
ステップ値の指定
range関数は、ステップ値を指定することもできます。ステップ値は、シーケンスの各要素間の差を指定します。
for i in range(0, 10, 2):
print(i)
#出力: 0 2 4 6 8
上記のコードでは、0から10未満の数値を、2つずつ飛ばして表示します。
負のステップ値
ステップ値に負の値を指定すると、逆順に数値を生成できます。この場合、開始値は終了値より大きくなければなりません。
for i in range(5, 0, -1):
print(i)
#出力: 5 4 3 2 1
上記のコードでは、5から1までの数値が逆順に表示されます。
range関数の応用例
range関数は、リストや配列のインデックスを指定する際に便利です。
my_list = ['a', 'b', 'c', 'd', 'e']
for i in range(len(my_list)):
print(my_list[i])
#出力: a b c d e
上記のコードでは、リストmy_listの各要素を順番に表示しています。
リストへの変換
range関数の戻り値はrangeオブジェクトですが、list関数を使ってリストに変換することができます。
my_range = range(1, 10, 2)
my_list = list(my_range)
print(my_list) # 出力: [1, 3, 5, 7, 9]
リストに変換すると、rangeオブジェクトを直接扱うよりも、要素へのアクセスが容易になります。
注意点
range関数の使用における注意点です。
- 終了値はシーケンスに含まれません。
- ステップ値が0の場合、ValueErrorが発生します。
- 開始値、終了値、ステップ値は整数でなければなりません。
関連記事
- Pythonでfor文によるループ処理(for in, for in range)
- Pythonでwhile文によるループ処理
- Pythonでループを中断・スキップ(break, continue)
- Pythonでリストを作成(list, リスト内包表記)
- Pythonで数値の範囲を指定して反復処理(range)
- Pythonで数値の書式設定(format, f文字列 (Python 3.6以降))
- Pythonでラムダ式(無名関数)を使う(lambda)
- Pythonでジェネレータ関数を使う(yield)
- Pythonで高階関数を使う(map, filter, reduceなど)
- Pythonでリストの要素を抽出(スライス, リスト内包表記)