Python|リストの並び替え(sort・sorted)の使い方を解説

1. はじめに

Pythonでリストを扱う際に頻繁に登場するのが「sort()」と「sorted()」です。
本記事では、Python|リストの並び替え(sort・sorted)の使い方を解説というタイトルのもと、リストを昇順・降順に並び替える基本から、応用例、エラー対策までを丁寧に解説します。

これらの関数を使いこなすことで、データの整列・ランキング・ソート処理など、日常的なプログラムの可読性と効率が大きく向上します。

 

2. Pythonのsort()とsorted()の基本解説

sort()とsorted()の違い

Pythonでリストを並び替える方法は大きく2つあります。sort()はリストそのものを変更し、sorted()は並び替えた新しいリストを返します。

sort()の基本的な使い方

numbers = [5, 2, 9, 1, 7]
numbers.sort()  # 昇順に並び替え
print(numbers)

出力結果:

[1, 2, 5, 7, 9]

sorted()の基本的な使い方

numbers = [5, 2, 9, 1, 7]
sorted_numbers = sorted(numbers)  # 新しいリストを返す
print(sorted_numbers)
print(numbers)  # 元のリストは変わらない

出力結果:

[1, 2, 5, 7, 9]
[5, 2, 9, 1, 7]

 

3. よくある使い方・応用例

降順に並び替える方法

reverse=True を指定することで、降順に並び替えることができます。

numbers = [5, 2, 9, 1, 7]
numbers.sort(reverse=True)
print(numbers)

出力結果:

[9, 7, 5, 2, 1]

key引数を使ったカスタム並び替え

文字列リストを「文字数」で並び替えるような応用も可能です。

words = ["banana", "fig", "apple", "cherry"]
words.sort(key=len)  # 文字数の短い順に並び替え
print(words)

出力結果:

['fig', 'apple', 'banana', 'cherry']

辞書リストを値で並び替える

実務でよく使われるのが、辞書リストの特定キーを基準にしたソートです。

data = [
    {"name": "Alice", "score": 88},
    {"name": "Bob", "score": 95},
    {"name": "Charlie", "score": 70}
]

sorted_data = sorted(data, key=lambda x: x["score"])
print(sorted_data)

出力結果:

[{'name': 'Charlie', 'score': 70},
 {'name': 'Alice', 'score': 88},
 {'name': 'Bob', 'score': 95}]

 

4. 注意点・エラー対策

異なる型を混在させるとエラーになる

リストに異なる型(例:整数と文字列)が混在していると並び替え時にエラーになります。

mixed = [3, "apple", 7]
# エラー:'<' not supported between instances of 'str' and 'int'
sorted(mixed)

対策: 型を統一するか、key関数で適切な変換処理を行う必要があります。

sort()は破壊的変更をする

sort()はリストを変更してしまうため、元の順序を保持したい場合にはsorted()を使いましょう。

Noneが混在する場合の処理

Noneが混じっていると比較できずエラーになります。
その場合、key引数で代替値を与えることで対処できます。

values = [5, None, 2]
# エラーになるため keyでNoneを大きな値に置換
sorted_values = sorted(values, key=lambda x: (x is None, x))
print(sorted_values)

出力結果:

[2, 5, None]

 

5. まとめ

  • sort()はリストを直接並び替える。破壊的。
  • sorted()は新しい並び替え済みリストを返す。非破壊的。
  • reversekey引数を活用することで応用が広がる。

リストの並び替えは、データ処理・表示順制御・ランキング機能など実務でも非常に活用される場面が多いです。
特に、辞書リストの並び替えは現場でも頻出の処理なので、早めに慣れておくと後々役立ちます。

独学中の方は、自分で並び替え条件を設定してみるという練習を通じて、より理解が深まるでしょう。

タイトルとURLをコピーしました