<一覧に戻る

リストのソートと順序変更(sort、reverse)

Pythonでリストを使っていると、「要素を並び替えたい」「順序を逆にしたい」といった場面が必ず出てきます。 例えば、テストの点数を小さい順に並べたいときや、名前のリストをアルファベット順に整列したいとき、あるいは単純に順序を反転させたいときなどです。

Pythonにはこのような処理を簡単に行うためのメソッドとしてsort()reverse()が用意されています。今回は、それぞれの使い方と特徴をわかりやすく解説していきます。

sort()メソッドで昇順に並べ替える

まずは、sort()メソッドから見ていきましょう。 sort() はリストの要素を昇順(小さいものから大きいもの)に並べ替える機能を持っています。

重要な点として、sort()は新しいリストを返さず、元のリストそのものを変更するという性質があります。

実際のコード例を確認してみましょう。

# サンプルリスト
numbers = [5, 2, 9, 1, 5, 6]

# 昇順にソート
numbers.sort()

# 結果を表示
print("昇順にソートされたリスト:", numbers)

このコードでは、まずnumbersというリストを定義し、numbers.sort()とsort()を呼び出すことで要素を小さい順に並べ替えています。 実行すると [1, 2, 5, 5, 6, 9] という結果が表示され、リストが昇順に整列されたことがわかります。

sort()メソッドで降順に並べ替える

多くの場合は昇順で並べ替えるだけで十分ですが、時には大きい値から小さい値へと並べたいこともあります。 そのようなときには sort() にreverse=Trueというオプションを指定します。

これにより、リストは降順(大きいものから小さいもの)に並べ替えられます。

実際のコードはこちらです。

# サンプルリスト
numbers = [5, 2, 9, 1, 5, 6]

# 降順にソート
numbers.sort(reverse=True)

# 結果を表示
print("降順にソートされたリスト:", numbers)

この場合、出力は [9, 6, 5, 5, 2, 1] となります。reverse=Trueを引数に渡すだけで、簡単に逆向きの並び替えが実現できるのです。 特に点数や売上ランキングなどを扱うときに役立つ方法です

reverse()メソッドで単純に逆順にする

次に紹介するのは reverse() メソッドです。 名前の通り、リストの要素を逆順に並べ替える機能を持っています。こちらも sort() と同じく元のリストを直接変更し、新しいリストは返しません。

コード例を見てみましょう。

# サンプルリスト
numbers = [1, 2, 3, 4, 5]

# 順序を逆にする
numbers.reverse()

# 結果を表示
print("逆順にしたリスト:", numbers)

このコードを実行すると [5, 4, 3, 2, 1] という結果が表示されます。 つまり、reverse() は「並べ替え」ではなく「順序を反転させる」操作だという点に注意してください。

もしリストを大小関係に基づいて並べ替えたい場合は sort() を使い、単に逆向きに並べたいだけなら reverse() を使う、という風に使い分けるとよいでしょう。

4. まとめ

ここまで、Pythonのリストでよく使う並べ替えの方法について解説してきました。

  • sort()を使えば、リストを昇順に並べ替えることができます。
  • sort(reverse=True)を使えば、降順での並べ替えも可能です。
  • reverse()を使うと、大小関係とは関係なくリスト全体を逆順に並び替えられます。

いずれのメソッドも 元のリストを直接変更する という点が重要です。新しいリストを生成したい場合は、sorted() 関数など別の方法を利用することになります。

これらの基本をしっかり押さえておけば、Pythonでのデータ処理やアルゴリズムの実装において非常に役立ちます。次の教材では、さらに便利なリスト操作について学んでいきましょう。

出力結果: