HOWTO · Python

Python でリストを降順で並べ替える

Python でリストを降順で並べ替える方法を示します。 sort() メソッドを使用してリストをソートできます。

このページの内容

このチュートリアルでは、Python でリストを降順で並べ替える方法を示します。

Python で sort() メソッドを使用してリストを降順で並べ替える

Python には、sort() と呼ばれる組み込み関数があります。この関数は、デフォルトでリストを昇順で並べ替えます。このメソッドは、指定されたリストの内容を単純にソートします。必須のパラメーターはありませんが、オプションのパラメーターがあります。

  • key - 多次元配列内でソートされるインデックスまたは位置を決定します。
  • reverse - True の場合、リストは降順でソートされます。

このメソッドがパラメーターの有無にかかわらずリストをどのようにソートするかを見てみましょう。

  • パラメータなし:
colors = ["pink", "blue", "black", "white"]
colors.sort()

print(colors)

出力:

['black', 'blue', 'pink', 'white']

リストは、単一文字に対応する整数である ASCII 値に基づいて文字列を並べ替えます。比較する両方の文字列の ASCII 値が同じである場合、比較するものがなくなるまで、両方の文字列の次の文字の比較に進みます。

  • reverse パラメーターの使用:
colors = ["pink", "blue", "black", "white"]
colors.sort(reverse=True)
print(colors)

出力:

['white', 'pink', 'blue', 'black']

reverse パラメータを True に設定すると、リストが降順で並べ替えられます。

整数と浮動小数点数の並べ替えは、どちらが大きいか小さいかに基づいて並べ替えられます。別の例で試してみましょう。今回は整数と小数を降順で並べ替えます。

numbers = [55, 6, -0.05, 0.07, 2.5, -7, 2.99, 101, 0.78]
numbers.sort(reverse=True)

print(numbers)

出力:

[101, 55, 6, 2.99, 2.5, 0.78, 0.07, -0.05, -7]

出力から、sort() 関数を使用して数値をソートすると、負の数だけでなく小数も記録されます。

このタイプの並べ替えは、YYYY-MM-DD HH:MM:SS のような形式の日付でも機能します。これを証明する例として、タイムスタンプのリストを使用してみましょう。

timestamps = [
    "2021-04-15 09:08:30",
    "2021-04-14 08:09:38",
    "2021-04-18 12:10:52",
    "2021-04-21 23:39:22",
    "2021-04-13 14:40:22",
    "2021-04-14 13:59:46",
    "2021-04-15 19:22:37",
    "2021-04-18 07:00:58",
    "2021-04-17 04:01:50",
    "2021-04-22 01:17:13",
    "2021-04-25 24:22:13",
    "2021-04-14 25:36:38",
]

timestamps.sort(reverse=True)

print(timestamps)

出力:

['2021-04-25 24:22:13', '2021-04-22 01:17:13', '2021-04-21 23:39:22', '2021-04-18 12:10:52', '2021-04-18 07:00:58', '2021-04-17 04:01:50', '2021-04-15 19:22:37', '2021-04-15 09:08:30', '2021-04-14 25:36:38', '2021-04-14 13:59:46', '2021-04-14 08:09:38', '2021-04-13 14:40:22']

出力が降順で正常にソートされていることを確認し、reverse パラメーターを指定した sort() 関数を使用してタイムスタンプも正しくソートできることを確認します。

要約すると、組み込みの sort() 関数を使用し、reverse パラメーターを True に設定すると、Python リストを降順で並べ替えることができます。