Python 反復処理 #1 range

株式会社リュディアです。今回から反復処理、いわゆるループ処理についてまとめていきます。今回は range 関数range オブジェクトについてです。

range関数は引数に応じて rangeオブジェクトを生成します。文法は以下のようになります。

range(stop)
range(start, stop [, step])

では具体例で見ていきましょう。

range(9)
>> range(0, 9)

range(0, 9)
>> range(0, 9)

何をやりたいのかよくわからないですね。ただ range(9) は range(0, 9) の省略形であることはわかりました。

rangeオブジェクトの出力だと何が出ているのかよくわからないのでリスト型に変換してみます。

r = range(9)
list(r)
>> [0, 1, 2, 3, 4, 5, 6, 7, 8]

r = range(0, 9)
list(r)
>> [0, 1, 2, 3, 4, 5, 6, 7, 8]

これで range(9) と range(0, 9) は同じものを表現していることがわかりましたね。stop にあたる 9 のみを指定した場合は start が 0 になっていますね。次は step を指定してみます。

r = range(0, 9, 1)
list(r)
>> [0, 1, 2, 3, 4, 5, 6, 7, 8]

r = range(0, 9, 2)
list(r)
>> [0, 2, 4, 6, 8]

step は刻みのことで最初の例では step は 1、次の例では step が 2 であることがわかりますね。

大きな数字から初めて小さな数字に向かう際に step を負の数で指定することも可能です。

r = range(9, 0, -2)
list(r)
>> [9, 7, 5, 3, 1]

rangeオブジェクトはリストのように要素へのアクセスが可能です。例えば以下の例を見てください。

r = range(9, 0, -2)
l = list(r)
print(l)
print(r[2])
>> [9, 7, 5, 3, 1] <- 確認用にリストに変換したものを表示
>> 5               <- rangeオブジェクトの r[2] にアクセスした結果

r[2] でレンジ型オブジェクトの 0から数えてインデクス 2 の要素である 5 にアクセスできていますね。

今回は反復処理の初回として range 関数range オブジェクトについてまとめてみました。反復処理とは関係なく感じる方もおられるかもしれませんが range を理解していると反復処理の理解が深まると思いますのでしっかりと理解しておいてください。

反復処理に関するまとめの続きは以下からどうぞ。

では、ごきげんよう。




この記事が気に入ったらサポートをしてみませんか?