Pythonには、リストをインプレースに変更する組み込みメソッド list.sort()
と、イテラブルからソートしたリストを作成する組み込み関数 sorted()
があります。これらの関数は、Pythonで利用可能な様々なソートテクニックの一部です。
ソートの基本
単純な昇順のソートはとても簡単です。sorted()
関数を呼ぶだけで、新たにソートされたリストが返されます。
>>> sorted([5, 2, 3, 1, 4])
[1, 2, 3, 4, 5]
list.sort()
メソッドを呼び出しても同じことができます。この方法はリストをインプレースに変更します。
>>> a = [5, 2, 3, 1, 4]
>>> a.sort()
>>> a
[1, 2, 3, 4, 5]
Key関数
list.sort()
と sorted()
には key
パラメータがあります。これは比較を行う前にリストの各要素に対して呼び出される関数 (または呼び出し可能オブジェクト) を指定するパラメータです。
>>> sorted("This is a test string from Andrew".split(), key=str.casefold)
['a', 'Andrew', 'from', 'is', 'string', 'test', 'This']
ソートアルゴリズム
Pythonの sort()
メソッドは、バージョン3.11以降、powersortというマージソートアルゴリズムを使用しています。また、Pythonの sorted()
関数は、Timsortというハイブリッドソートアルゴリズムを使用しています。
以上がPythonのリストソートアルゴリズムについての基本的な情報です。これらの知識を活用して、Pythonプログラミングをより効率的に行うことができます。