Pythonリストの並び替え:sort()メソッドの基本と応用

Pythonのリストに格納された要素を、特定の順番(昇順や降順)に並べ替えたい場面は頻繁に発生します。そんなときに役立つのが、リストが持つ**sort()メソッド**です。

sort()メソッドは、リストの要素を自動で並べ替え、リスト自体を直接変更します。この記事では、sort()メソッドの基本的な使い方から、知っておくべき注意点までを解説します。


目次

sort()メソッドの基本

sort()メソッドは、引数を指定しない場合、数値を昇順(小さい順)に、文字列をアルファベット順に並べ替えます。

# 数値のリスト
points = [85, 92, 78, 99, 55]

print(f"ソート前: {points}")
points.sort()

print(f"ソート後: {points}")

実行結果:

ソート前: [85, 92, 78, 99, 55]
ソート後: [55, 78, 85, 92, 99]

sort()メソッドは、新しいリストを返さず、元のリストそのものを変更するという点が重要です。


文字列のソートと降順ソート

sort()メソッドは文字列のリストにも同じように適用できます。

# メンバーの名前リスト
names = ["Emma", "Chris", "Ben", "David", "Alice"]

print(f"ソート前: {names}")
names.sort()
print(f"ソート後: {names}")

実行結果:

ソート前: ['Emma', 'Chris', 'Ben', 'David', 'Alice']
ソート後: ['Alice', 'Ben', 'Chris', 'David', 'Emma']

sort()は、アルファベット順(辞書順)にリストを並べ替えます。

降順にソートする

sort()メソッドの引数にreverse=Trueを指定すると、並び順を逆転させ、**降順(大きい順)**にソートすることができます。

numbers = [85, 92, 78, 99, 55]

numbers.sort(reverse=True)
print(f"降順ソート: {numbers}")

names = ["Emma", "Chris", "Ben", "David", "Alice"]
names.sort(reverse=True)
print(f"逆アルファベット順: {names}")

実行結果:

降順ソート: [99, 92, 85, 78, 55]
逆アルファベット順: ['Emma', 'David', 'Chris', 'Ben', 'Alice']

sort()メソッドの注意点

sort()メソッドを使う際に、特に気をつけるべき点が二つあります。

1. 異なるデータ型はソートできない

sort()メソッドは、リスト内の要素が同じデータ型(すべて数値、またはすべて文字列など)である必要があります。数値と文字列が混在するリストをソートしようとすると、Pythonはそれらをどのように比較すればよいか判断できないため、**TypeError**というエラーが発生します。

# エラーになる例
mixed_list = [1, 5, 2, "A", "B", 4]
# mixed_list.sort() # この行を実行するとエラーになります

2. リスト自体が変更される

前述の通り、sort()メソッドは新しいリストを生成するのではなく、元のリストを直接変更します。元のリストをそのまま残しておきたい場合は、sorted()関数を使うという別の方法があります。


まとめ

今回は、リストの要素を並べ替えるsort()メソッドについて解説しました。

  • list.sort():リストの要素を昇順に並べ替えます。
  • list.sort(reverse=True):リストの要素を降順に並べ替えます。
  • sort()は、リスト自体を直接変更します。
  • sort()は、数値同士文字列同士など、同じ種類の要素を持つリストに対してのみ使用できます。

これらの点を理解してsort()を使いこなすことで、データを効率的に整理できるようになります。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次