Python

【Python】range関数で1から連番・飛ばしの間隔・逆順など

  • このエントリーをはてなブックマークに追加
  • LINEで送る

Pythonのrange関数でチョットした応用をしたいあなたへ。

『1から連番にするには?』

『間隔を飛ばしで連番にするには?』

『逆順にどうやってするの?』

 

こんな疑問に答えます。

SE歴25年のオッサンが解説するぞい!
SEおっさん
SEおっさん



スポンサーリンク

【Python】range関数で1から連番にする方法

range関数で1から連番にする方法は…

1番目の引数に”1″をセット

2番目の引数に”終了する値”をセット

です。

これで1から連番を作成できます。

1から連番を作成するrange関数の構文はこちら。

range関数(1から連番)
  • 第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]

たろちゃん
たろちゃん
1から連番が作成されているね!

Q&A

Q:print(x)の実行結果がrange(1, 5)になってるのは?

A:range関数の戻り値の型はrangeオブジェクトだからです

list型に変換すると連番[1, 2, 3, 4]が表示されます。

 

Q:終了値は5を指定してるのに4で終わってるのは?

A:開始値 ≦連続値<終了値だからです

終了値は含まず、終了値の直前までの連番を作成します。

イメージはこんな感じ

0|1234|5
 境    境
 界    界

5は含まれない点がポイント♪

 

わかったかのぅ
SEおっさん
SEおっさん

これらのQ&Aはrange関数の使い方を理解していればスっと頭に入るでしょう。

【Python】range関数の使い方!範囲・最後の判定・初期値など
【Python】range関数の使い方!範囲・最後の判定・初期値など
Pythonはrange関数で連番が作成できます。 でも… 『range関数の使い方は?』 『範囲を指定する方法は?』 『最後の判定はドコに境界があるの?』 『.....


スポンサーリンク

【Python】range関数で間隔を飛ばして連番にする方法

range関数で間隔を飛ばして連番にする方法は…

3番目の引数に間隔をセット

です。

たろちゃん
たろちゃん
間隔って何?

カウントアップで増える量じゃ
SEおっさん
SEおっさん

間隔とは連番のカウントアップで増える量です。

階段をイメージしてください。

階段を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関数の構文はこちら。

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]

たろちゃん
たろちゃん
0から1飛ばしで連番が作成されているね!

Q&A

Q:print(x)の実行結果がrange(0, 6, 2)なってるのは?

A:range関数の戻り値の型はrangeオブジェクトだからです

list型に変換すると連番[0, 2, 4]が表示されます。

 

Q:終了値は6を指定してるのに4で終わってるのは?

A:開始値 ≦連続値<終了値だからです

終了値は含まず、終了値の直前までの連番を作成します。

イメージはこんな感じ

|012345|6
境      境
界      界

6は含まれない点がポイント♪

わかったかのぅ
SEおっさん
SEおっさん

リストや文字列もスライスという方法で1つ飛ばしできます。
考え方は「range関数の1つ飛ばし」と同じです。

【Python】スライスとは?リストや文字列を後ろから!飛ばしもOK♪



スポンサーリンク

【Python】range関数で連番を逆順にする方法

range関数でカウントアップする連番を逆順にするには…

3番目の引数に-1をセット

です。

3番目の引数は間隔です。

間隔の説明は次の通り。

間隔

プラス値…カウントアップで連番の増える量

マイナス値…カウントダウンで連番の減る量

1の場合は、1づつカウントアップします。

SEおっさん
SEおっさん
-1の場合はどうなると思う?

1づつカウントダウン!
たろちゃん
たろちゃん
SEおっさん
SEおっさん
正解じゃ!

間隔値はカウントアップで増える量を表しますが、カウントダウンとして減る量も表現できるのです。

間隔値-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関数の構文はこちら。

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]

たろちゃん
たろちゃん
5から逆順に連番が作成されているね!

Q&A

Q:print(x)の実行結果がrange(5, 0, -1)なってるのは?

A:range関数の戻り値の型はrangeオブジェクトだからです

list型に変換すると連番[5, 4, 3, 2, 1]が表示されます。

 

Q:終了値は0を指定してるのに1で終わってるのは?

A:開始値 ≧連続値>終了値だからです

終了値は含まず、終了値の直前までの連番を作成します。

イメージはこんな感じ

6|54321|0
 境     境
 界     界

0は含まれない点がポイント♪

わかったかのぅ
SEおっさん
SEおっさん

リストや文字列もスライスという方法で逆順にできます。
考え方は「range関数の逆順」と同じです。

【Python】スライスとは?リストや文字列を後ろから!飛ばしもOK♪

reverceやreversed関数でも逆順にできます。
色々お試しあれ

【Python】reverseとreversedの区別!リスト等



スポンサーリンク

【Python】range関数まとめ!1から・1飛ばし・逆順

いかがでしたでしょうか?

  • range関数で1から連番にする方法
  • range関数で間隔を飛ばして連番にする方法
  • range関数で連番を逆順にする方法

についてご紹介してきました。

range関数はPythonで初めから搭載されている組込関数です。

モジュールをimportする必要もなく気楽に使えます。

振り返ってみましょう!

range関数で1から連番にする方法
  • 第1引数(開始)に”1″をセット
  • 第2引数(終了)に”終了する値”をセット
  • 第3引数(間隔)は省略でOK
range関数で間隔を飛ばして連番にする方法
  • 第1引数(開始)に”開始する値″をセット
  • 第2引数(終了)に”終了する値”をセット
  • 第3引数(間隔)にプラス値をセット

間隔とはカウントアップで増える量のこと
間隔が2の場合は2づつ増えてカウントアップ
0,2,4,6 … など

range関数で連番を逆順にする方法
  • 第1引数(開始)に”開始する値″をセット
  • 第2引数(終了)に”終了する値”をセット
  • 第3引数(間隔)にマイナス値をセット

間隔をマイナスにするとカウントダウンで連番が作成される
カウントダウンで減る量をセットする
間隔がー2の場合は2づつ減ってカウントダウン
6,4,2,0 … など

range関数で簡単に連番が作成されることが分かったと思います。
~range関数の基本の使い方はこちら~

【Python】range関数の使い方!範囲・最後の判定・初期値など
【Python】range関数の使い方!範囲・最後の判定・初期値など
Pythonはrange関数で連番が作成できます。 でも… 『range関数の使い方は?』 『範囲を指定する方法は?』 『最後の判定はドコに境界があるの?』 『.....

 

range関数を使うシーンはたくさんあります。
特にfor文でカウントアップしながらループする処理は頻繁にみかけるでしょう。
ループ処理について理解を深めるのも良いかもしれません。

【Python】for文のインクリメントはrangeで変数にinする
【Python】for文のインクリメントはrangeで変数にinする
Pythonのfor文を使ってループしますが、 カウンタをインクリメントする方法が他言語と大きく異なります。 『for文でインデックスのインクリメント方法は?』.....
フローチャートで簡単にループを抜ける方法!2つの図形と3つの判定
フローチャートで簡単にループを抜ける方法!2つの図形と3つの判定
フローチャートは、なんとな~くわかってきたけど… ループの抜け方がわからんゾ 『そもそもループの図形ってあるの?』 『終了条件は、どうやって書くの?』 フローチ.....


range関数が扱えるのは整数のみです。
小数の連番を作成する方法は…
Numpyライブラリのarange関数を使用したり色々とあります。
~小数の連番を作成したい場合はこちら~

【Python】小数を連番|range関数・linspace等
【Python】小数を連番|range関数・linspace等
Pythonで小数の連番方法で困っているあなたへ。 『range関数で小数の連番を作成できるの?』 『range関数以外で小数の連番を作成する方法は?』 【Py.....

 

リストや文字列もスライスやという方法で1つ飛ばし・逆順にできます。
考え方は「range関数の1つ飛ばし・逆順」と同じです。
~リストや文字列をスライスで操作したい場合はこちら~

【Python】スライスとは?リストや文字列を後ろから!飛ばしもOK♪
【Python】スライスとは?リストや文字列を後ろから!飛ばしもOK♪
Pythonでリストや文字列を操作できるスライスがあります。 スライスを使うとリストを後ろから逆順に取得したり、1つ飛ばしするのも自由自在。 だけど… 『そもそ.....

 

~リストをreverse・reversedで逆順にしたい場合はこちら~

【Python】reverseとreversedの区別!リスト等
【Python】reverseとreversedの区別!リスト等
Pythonでリストとか逆順にしたいけど、reverseとreversedがいま一歩わからないあなたへ。 『reverseとreversedの区別・違いは?』 .....

 

はい。今回は以上です。

いかがでしたか?

連番・逆順・1つ飛ばしはケッコー奥が深いですねぇ。
一緒に楽しみながらプログラミングを頑張りましょー♪

SEおっさん
SEおっさん
ここまで読んでくれてありがとう!

「記事を読んでもわからないトコがある」「内容が変だよ」
という時は、お気軽にコメントください♪

「もっとSEおっさんに詳しく聞きたい。何かお願いしたい!」
という時は、ココナラまで。メッセージもお気軽に♪

LINEでのお問合わせも受付中!
LINE公式アカウント

メッセージをお待ちしています!

取得資格
  • 応用情報技術者
  • Oracle Master Gold
  • Java SE Gold
  • Java EE Webコンポーネントディベロッパ
  • Python エンジニア認定データ分析
  • 簿記2級


スポンサーリンク
  • このエントリーをはてなブックマークに追加
  • LINEで送る

コメントを残す

*