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

Rayven Esplanada 2022年12月26日 Python Python List
Python でリストを降順で並べ替える

このチュートリアルでは、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 リストを降順で並べ替えることができます。

チュートリアルを楽しんでいますか? <a href="https://www.youtube.com/@delftstack/?sub_confirmation=1" style="color: #a94442; font-weight: bold; text-decoration: underline;">DelftStackをチャンネル登録</a> して、高品質な動画ガイドをさらに制作するためのサポートをお願いします。 Subscribe
Rayven Esplanada avatar Rayven Esplanada avatar

Skilled in Python, Java, Spring Boot, AngularJS, and Agile Methodologies. Strong engineering professional with a passion for development and always seeking opportunities for personal and career growth. A Technical Writer writing about comprehensive how-to articles, environment set-ups, and technical walkthroughs. Specializes in writing Python, Java, Spring, and SQL articles.

LinkedIn

関連記事 - Python List