Pythonでリストを使っていると、「要素を並び替えたい」「順序を逆にしたい」といった場面が必ず出てきます。 例えば、テストの点数を小さい順に並べたいときや、名前のリストをアルファベット順に整列したいとき、あるいは単純に順序を反転させたいときなどです。
Pythonにはこのような処理を簡単に行うためのメソッドとしてsort()とreverse()が用意されています。今回は、それぞれの使い方と特徴をわかりやすく解説していきます。
まずは、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() にreverse=True
というオプションを指定します。
これにより、リストは降順(大きいものから小さいもの)に並べ替えられます。
実際のコードはこちらです。
# サンプルリスト
numbers = [5, 2, 9, 1, 5, 6]
# 降順にソート
numbers.sort(reverse=True)
# 結果を表示
print("降順にソートされたリスト:", numbers)
この場合、出力は [9, 6, 5, 5, 2, 1] となります。reverse=True
を引数に渡すだけで、簡単に逆向きの並び替えが実現できるのです。
特に点数や売上ランキングなどを扱うときに役立つ方法です
次に紹介するのは reverse() メソッドです。 名前の通り、リストの要素を逆順に並べ替える機能を持っています。こちらも sort() と同じく元のリストを直接変更し、新しいリストは返しません。
コード例を見てみましょう。
# サンプルリスト
numbers = [1, 2, 3, 4, 5]
# 順序を逆にする
numbers.reverse()
# 結果を表示
print("逆順にしたリスト:", numbers)
このコードを実行すると [5, 4, 3, 2, 1] という結果が表示されます。 つまり、reverse() は「並べ替え」ではなく「順序を反転させる」操作だという点に注意してください。
もしリストを大小関係に基づいて並べ替えたい場合は sort() を使い、単に逆向きに並べたいだけなら reverse() を使う、という風に使い分けるとよいでしょう。
ここまで、Pythonのリストでよく使う並べ替えの方法について解説してきました。
いずれのメソッドも 元のリストを直接変更する という点が重要です。新しいリストを生成したい場合は、sorted() 関数など別の方法を利用することになります。
これらの基本をしっかり押さえておけば、Pythonでのデータ処理やアルゴリズムの実装において非常に役立ちます。次の教材では、さらに便利なリスト操作について学んでいきましょう。