Pythonのrange関数でチョットした応用をしたいあなたへ。
『1から連番にするには?』
『間隔を飛ばしで連番にするには?』
『逆順にどうやってするの?』
こんな疑問に答えます。
【Python】range関数で1から連番にする方法
range関数で1から連番にする方法は…
1番目の引数に”1″をセット
2番目の引数に”終了する値”をセット
です。
これで1から連番を作成できます。
1から連番を作成するrange関数の構文はこちら。
- 第1引数
開始(start)…1 - 第2引数
終了(stop)…終了する値
- 戻り値
1から終了まで1づつ加算した連番 - 戻り値の型
rangeオブジェクト
まだ解らなくてもOK。
例文を一緒に見ていこう
x = range(1, 5)
print(x)
print(list(x))
range(1, 5) [1, 2, 3, 4]
Q:print(x)の実行結果がrange(1, 5)になってるのは?
A:range関数の戻り値の型はrangeオブジェクトだからです
list型に変換すると連番[1, 2, 3, 4]が表示されます。
Q:終了値は5を指定してるのに4で終わってるのは?
A:開始値 ≦連続値<終了値だからです
終了値は含まず、終了値の直前までの連番を作成します。
イメージはこんな感じ
0|1234|5
境 境
界 界
5は含まれない点がポイント♪
これらのQ&Aはrange関数の使い方を理解していればスっと頭に入るでしょう。
【Python】range関数で間隔を飛ばして連番にする方法
range関数で間隔を飛ばして連番にする方法は…
3番目の引数に間隔をセット
です。
間隔とは連番のカウントアップで増える量です。
階段をイメージしてください。
階段を2段づつ上るとき、1段飛ばしになりますよね。
階段を何段づつ上るか(カウントアップするか)
が第3引数の間隔の意味です。
ケーススタディで考えてみましょう。
- 間隔値=1
1づつカウントアップ(1つ増える)
0,1,2,3
0コ飛ばし(普通の連番) - 間隔値=2
2づつカウントアップ(2つ増える)
0,2,4,6
1コ飛ばし - 間隔値=3
3づつカウントアップ(3つ増える)
0,3,6,9
2コ飛ばし
間隔値の意味は理解できたでしょうか?
引数に間隔値を指定するrange関数の構文はこちら。
- 第1引数
開始(start)…開始する値 - 第2引数
終了(stop)…終了する値 - 第3引数
間隔(step)…増える量
- 戻り値
開始から終了まで間隔づつ加算した連番 - 戻り値の型
rangeオブジェクト
まだ解らなくてもOK。
例文を一緒に見ていこう
x = range(0, 6, 2)
print(x)
print(list(x))
range(0, 6, 2) [0, 2, 4]
Q:print(x)の実行結果がrange(0, 6, 2)なってるのは?
A:range関数の戻り値の型はrangeオブジェクトだからです
list型に変換すると連番[0, 2, 4]が表示されます。
Q:終了値は6を指定してるのに4で終わってるのは?
A:開始値 ≦連続値<終了値だからです
終了値は含まず、終了値の直前までの連番を作成します。
イメージはこんな感じ
|012345|6
境 境
界 界
6は含まれない点がポイント♪
リストや文字列もスライスという方法で1つ飛ばしできます。
考え方は「range関数の1つ飛ばし」と同じです。
【Python】スライスとは?リストや文字列を後ろから!飛ばしもOK♪
【Python】range関数で連番を逆順にする方法
range関数でカウントアップする連番を逆順にするには…
3番目の引数に-1をセット
です。
3番目の引数は間隔です。
間隔の説明は次の通り。
プラス値…カウントアップで連番の増える量
マイナス値…カウントダウンで連番の減る量
1の場合は、1づつカウントアップします。
間隔値はカウントアップで増える量を表しますが、カウントダウンとして減る量も表現できるのです。
間隔値-2をセットすると1コ飛ばしの逆順で連番が作成されます。
ケーススタディで考えよう。
- 間隔値が-1
3,2,1,0
1づつカウントダウン(1つ減る)
普通の逆順 - 間隔値が-2
6,4,2,0
2づつカウントダウン(2つ減る)
1コ飛ばしの逆順 - 間隔値が-3
9,6,3,0
3づつカウントダウン(3つ減る)
2コ飛ばしの逆順
間隔をマイナスにすると逆順になるイメージは掴めたでしょうか?
間隔にマイナスを指定するrange関数の構文はこちら。
- 第1引数
開始(start)…開始する値 - 第2引数
終了(stop)…終了する値 - 第3引数
間隔(step)…減る量
- 戻り値
開始から終了まで間隔づつ減算した連番 - 戻り値の型
rangeオブジェクト
まだ解らなくてもOK。
例文を一緒に見ていこう
x = range(5, 0, -1)
print(x)
print(list(x))
range(5, 0, -1) [5, 4, 3, 2, 1]
Q:print(x)の実行結果がrange(5, 0, -1)なってるのは?
A:range関数の戻り値の型はrangeオブジェクトだからです
list型に変換すると連番[5, 4, 3, 2, 1]が表示されます。
Q:終了値は0を指定してるのに1で終わってるのは?
A:開始値 ≧連続値>終了値だからです
終了値は含まず、終了値の直前までの連番を作成します。
イメージはこんな感じ
6|54321|0
境 境
界 界
0は含まれない点がポイント♪
リストや文字列もスライスという方法で逆順にできます。
考え方は「range関数の逆順」と同じです。
【Python】スライスとは?リストや文字列を後ろから!飛ばしもOK♪
reverceやreversed関数でも逆順にできます。
色々お試しあれ
【Python】reverseとreversedの区別!リスト等
【Python】range関数まとめ!1から・1飛ばし・逆順
いかがでしたでしょうか?
- range関数で1から連番にする方法
- range関数で間隔を飛ばして連番にする方法
- range関数で連番を逆順にする方法
についてご紹介してきました。
range関数はPythonで初めから搭載されている組込関数です。
モジュールをimportする必要もなく気楽に使えます。
振り返ってみましょう!
- 第1引数(開始)に”1″をセット
- 第2引数(終了)に”終了する値”をセット
- 第3引数(間隔)は省略でOK
- 第1引数(開始)に”開始する値″をセット
- 第2引数(終了)に”終了する値”をセット
- 第3引数(間隔)にプラス値をセット
間隔とはカウントアップで増える量のこと
間隔が2の場合は2づつ増えてカウントアップ
0,2,4,6 … など
- 第1引数(開始)に”開始する値″をセット
- 第2引数(終了)に”終了する値”をセット
- 第3引数(間隔)にマイナス値をセット
間隔をマイナスにするとカウントダウンで連番が作成される
カウントダウンで減る量をセットする
間隔がー2の場合は2づつ減ってカウントダウン
6,4,2,0 … など
range関数で簡単に連番が作成されることが分かったと思います。
~range関数の基本の使い方はこちら~
range関数を使うシーンはたくさんあります。
特にfor文でカウントアップしながらループする処理は頻繁にみかけるでしょう。
ループ処理について理解を深めるのも良いかもしれません。
range関数が扱えるのは整数のみです。
小数の連番を作成する方法は…
Numpyライブラリのarange関数を使用したり色々とあります。
~小数の連番を作成したい場合はこちら~
リストや文字列もスライスやという方法で1つ飛ばし・逆順にできます。
考え方は「range関数の1つ飛ばし・逆順」と同じです。
~リストや文字列をスライスで操作したい場合はこちら~
~リストをreverse・reversedで逆順にしたい場合はこちら~
はい。今回は以上です。
いかがでしたか?
連番・逆順・1つ飛ばしはケッコー奥が深いですねぇ。
一緒に楽しみながらプログラミングを頑張りましょー♪
「記事を読んでもわからないトコがある」「内容が変だよ」
という時は、お気軽にコメントください♪
「もっとSEおっさんに詳しく聞きたい。何かお願いしたい!」
という時は、ココナラまで。メッセージもお気軽に♪
LINEでのお問合わせも受付中!
LINE公式アカウント
メッセージをお待ちしています!
- 応用情報技術者
- Oracle Master Gold
- Java SE Gold
- Java EE Webコンポーネントディベロッパ
- Python エンジニア認定データ分析
- 簿記2級