Pythonのリストには、リストをその場で変更する組み込みの list.sort()
メソッドがあります。また、イテラブルから新しいソートされたリストを作成する sorted()
という組み込み関数もあります。
list.sort()
や sorted()
には、比較のための各リスト要素に対して呼び出される関数を指定する key
パラメータがあります。
例えば、次のようなリストがあるとします。
l = [[1, 5, 'e'], [1, 2, 's'], [0, 4, 'e']]
このリストを、第一要素でソートし、第一要素が同じ場合は ‘s’ が先に来るようにソートしたいとします。その場合、次のように list.sort()
を使用します。
l.sort(key=lambda x: (x[0], -ord(x[2])))
これにより、リストは次のようにソートされます。
[[0, 4, 'e'], [1, 2, 's'], [1, 5, 'e']]
このように、Pythonの list.sort()
や sorted()
を使用すると、カスタムの述語を使用してリストを効率的にソートすることができます。