環境設定 数値 文字列 正規表現 リスト タプル 集合 辞書 ループ 関数 クラス データクラス 時間 パス ファイル スクレイピング その他

Pythonのrange:整数の範囲や等差数列をリストにする

最終更新日 2023.02.18

Python では連続した整数のリストを range という関数で自由に作ることができます。

a = range(5)
b = range(3, 7)

for k in a:
    print(k)

# 0
# 1
# 2
# 3
# 4

for k in b:
    print(k)

# 3
# 4
# 5
# 6

range(5) は 0 から 4 までのリストで、5 個の要素があります。range の引数が 1 個しかないとき、range(n) は 0 から n-1 までの連続した整数のリストになります。

range(3, 7) は 3 から 6 までのリストです。第一引数は最小値、第二引数は最大値から 1 引いた数をそれぞれ表します。7 は要素数が 7 個という意味でなく、7-1=6 を最大値にするという意味です。

Python の range を理解するコツ:

  • range(m, n) は m 以上 n-1 以下の整数
  • range(n) は range(0, n) と同じ

Python の range で等差数列をつくる

range に 3 つの引数をもたせるとき、第一引数は最小値、第二引数は最大値から 1 引いた数、第三引数は公差を表します。

a = range(3, 19, 2)

for k in a:
    print(k)

# 3
# 5
# 7
# 9
# 11
# 13
# 15
# 17

19 が出力されていないことに注目してください。この等差数列は 18 を最大値とするので、17 で止まっています。