Python range関数

単調に増加、単調に減少するようなリストを作成したい時、range関数を使います。range関数の使い方について説明します。range関数が返すのはリストではなく、イテラブルオブジェクト(順番に値をとりだせるオブジェクト)です。


書き方

  • range(N) : 0から始まり、1 ずつ増え、N個の要素を持つ
  • range(N, M): Nから始まり、1 ずつ増え、Mまでの要素を持つ (Mは含まない)
  • range(N, M, L) : Nから始まり、Lずつ増え、Mまでの要素を持つ (Mは含まない)
list(range(8))
>> [0, 1, 2, 3, 4, 5, 6, 7]

list(range(2, 8))
>> [2, 3, 4, 5, 6, 7]

list(range(2, 8, 2))
>> [2, 4, 6]

浮動小数点の場合

range関数は整数しか扱えないため、リスト内包表記を使って小数に変換する必要がある。

[x/10 for x in range(10)]
>> [0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9]

減少する場合

range関数の第3引数に負の数を指定することで、単調減少させることができます。

list(range(10, 0, -2))
>> [10, 8, 6, 4, 2]

関連記事