range
前回、JavaScriptで大きな数や小数をカンマ区切りにする方法を紹介しました。
今回からはPythonの話題に戻ります。
そしてまずはものすごく基礎的なことですが、rangeで降順の数値のリストを作る方法を紹介します。
それでは始めていきましょう。
rangeの使い方のおさらい
まずはrangeの使い方のおさらいからです。
rangeは「range(数値1, 数値2)」とすると数値1から数値2の一つ手前の数字までのリストを作成することができます。
ちなみに結果を表示するのにアスタリスクでアンパックしています。
vals = range(0, 10)
print(*vals)
実行結果
0 1 2 3 4 5 6 7 8 9
飛び飛びの値を作ることもできて、その場合は「range(数値1, 数値2, 数値3)」とすると数値1から数値2まで数値3ごとの数値のリストを作成してくれます。
vals = range(0, 10, 2)
print(*vals)
実行結果
0 2 4 6 8
降順のリストの作成方法
それでは本命の降順のリストの作成方法を解説していきますが、まずは私がやりがちな間違いから紹介します。
vals = range(0, 10, -1)
print(*vals)
実行結果
例えばこの例ですと「0から10までの間の数で-1ずつ進む(つまり減る)」と考えられます。
これでいけると思ったのですが、結果には何も出てきません。
理由としてrange(数値1,数値2,数値3)だと「数値1から始まって、数値3ずつ変化して数値2まで」のリストを作るわけです。
つまり「range(0, 10, -1)」だと「0から始まって、-1ずつ変化し、10まで」のリストを作りますが、0から-1した時点で範囲から外れるので、何も出力されないということになります。
なので「range (10, 0, -1)」というように、大きな数を先に書くのが正解です。
vals = range(10, 0, -1)
print(*vals)
実行結果
10 9 8 7 6 5 4 3 2 1
他にも昇順のリストを作って、逆に並び替えるという方法があります。
その場合、「sorted(数値のリスト, reverse=True)」という方法と「reversed(数値のリスト)」という方法があります。
vals = range(0, 10)
print(*sorted(vals, reverse=True))
実行結果
9 8 7 6 5 4 3 2 1 0
vals = range(0, 10)
print(*reversed(vals))
実行結果
9 8 7 6 5 4 3 2 1 0
どちらの方法でも降順の数値のリストを作ることができました。
今回、reversedが出てきましたので、次回は同じように並び替える方法として、sortやsorted、reverse、reversedを紹介します。
ではでは今回はこんな感じで。
コメント