【Python】sorted()関数を使ってリスト等の要素をソートする!sort()との違いも解説!

sorted()はリスト等の要素や文字列の文字を並び替える時に使用し、並び替えを行うことで昇順・降順など、簡単に並べ替えることができます。

しかし、sorted()関数以外にもsort()メソッドというものもありますので注意が必要です。

今回はsorted()の以下の内容について解説します。
sorted()基本的な使い方
様々なデータ(リスト、タプル、辞書、配列、文字列)をソートする
sort()とsorted()の違い

sorted()とは

sorted()関数は、指定された反復可能オブジェクトのソートされたリストを返します。
昇順または降順を指定でき、文字列はアルファベット、ひらがな、カタカナの順に並べ替えられ、数値は数値順に並べ替えられます。

sorted()の書き方

sorted()の構文は下記となります。

パラメータの説明は下記となります。
リストなど
ソート、リスト、辞書、タプルなどのシーケンス。
key
順序を決定するために実行する関数。デフォルトはなし。
reverse
ブール値となり、falseは昇順で並べ替え、trueは降順で並べ替えられる。
デフォルトはfalse。

sorted()を使ったサンプルコード

数字の場合は数値順に、文字列の場合はアルファベット、ひらがな、カタカナの順に並べ替えられます。

出力結果

[-5, 2, 3, 11]
[‘a’, ‘d’, ‘f’, ‘あ’, ‘ア’]

sorted()の基本的な使い方

sorted()の基本的な使い方をサンプルコードを使って紹介します。

昇順に並び変える

昇順に並び変えるには引数reverseにFalse(Fは大文字)を指定します。
しかし、デフォルトがfalseなので引数reverseを指定しなくても昇順に並び替えることができます。

出力結果

[-40, 0.5, 13, 1000]
[‘lion’, ‘きつね’, ‘ウサギ’, ‘カメ’, ‘タヌキ’]

降順に並び替える

降順に並び替えるには引数reverseにTrue(Tは大文字)を指定します。

出力結果

[1000, 13, 0.5, -40]
[‘タヌキ’, ‘カメ’, ‘ウサギ’, ‘きつね’, ‘lion’]

並び替えの基準を他の関数で行う

並び替えの基準を他の関数で行うには引数keyに関数名を指定します。

出力結果

[1000, -40, 13, 0.5]
[‘カメ’, ‘きつね’, ‘タヌキ’, ‘ウサギ’, ‘lion’]

absは絶対値を表示することができるabs()であり、reverseがTrueである為、絶対値の降順に並び替えられています。
また、lenは文字列の長さを数えることができるlen()である為、文字列の長さの昇順に並び替えられています。

様々なデータ(リスト、タプル、辞書、配列、文字列)をソートする

様々なデータ(リスト、タプル、辞書、配列、文字列)をソートしてみます。

リストの場合

出力結果

[1000, -30, 13, 0.5]
[‘あきもと’, ‘すずき’, ‘たなか’, ‘なかむら’]

タプルの場合

出力結果

[1000, -30, 13, 0.5]
[‘あきもと’, ‘すずき’, ‘たなか’, ‘なかむら’]

辞書の場合

出力結果

[‘d’, ‘c’, ‘b’, ‘a’]
[‘desk’, ‘cat’, ‘ball’, ‘apple’]
[(‘d’, ‘desk’), (‘c’, ‘cat’), (‘b’, ‘ball’), (‘a’, ‘apple’)]

配列の場合

出力結果

[1000, 13, 5, -30]
[‘か’, ‘ず’, ‘と’, ‘む’]

文字列の場合

出力結果

ohayou
[‘a’, ‘h’, ‘o’, ‘o’, ‘u’, ‘y’]
[‘y’, ‘u’, ‘o’, ‘o’, ‘h’, ‘a’]

sort()とsorted()の違い

並び替える関数としてsort()関数というものもあります。
この二つ違いとしては「新しいリストを作るか作らないか」です。

sort()は元のリストからソート行いますが、今回解説したsorted()はソートを行った新たなリストを生成します。
言葉ではよくわからないかと思いますのでコードを書いて解説します。

sort()を使って要素を並び替えると、下記のようになります。

sort()の例1

出力結果

[-1, 1, 6, 10, 35, 78]

list1をソートしてlist1を出力しています。
続いて、sorted()を使って要素を並び替えると、下記のようになります。

sorted()の例

出力結果

[-1, 1, 6, 78, 10, 35]
[-1, 1, 6, 10, 35, 78]

list1をソートしたバージョンをlist2という変数に格納しています。
つまり、list1自体はそのままだということです。

sort()でsorted()のように作成してみると、ソートした新しいリストを生成しない為、Noneが返ってきます。

sort()の例2

出力結果

[-1, 1, 6, 10, 35, 78]
None

Writer
壷井

壷井

株式会社flyhawkの壷井です。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。

最新の案件情報

フリーランスエンジニアの案件探し