リストを並べ替えるだけです。デフォルトの並べ替えは、必要なことだけを行います。
2 つのタプルを比較する場合、内容に従って並べ替えられます。最初に最初の要素でソートされ、それらが等しい場合は 2 番目の要素でソートされます。
デモ:
>>> L = [(14, 2, 3), (1, 14, 0), (14, 1, 1), (1, 14, 2), (2, 4, 4), (4, 11, 5), (11, -1000, 6)]
>>> sorted(L)
[(1, 14, 0), (1, 14, 2), (2, 4, 4), (4, 11, 5), (11, -1000, 6), (14, 1, 1), (14, 2, 3)]
(14, 2, 3)
の後にまだソートされていることを示すために、要素を前方に移動しました(14, 1, 1)
。
Python のlist.sort()
メソッドと関数は、別の並べ替え順序が必要な場合に、代わりに並べ替える値を返すsorted()
関数を取ります。key
たとえば、最後の要素を最初に並べ替え、次に最後から 2 番目の要素を並べ替える場合は、次のようにします。
sorted(L, key=lambda t: t[::-1])
ラムダは逆のタプルを返し、代わりにソートします。渡した callable オブジェクトkey
は、入力シーケンス内の各要素に対して呼び出され、並べ替えの前にリストを「拡張」します。
[s[1] for s in sorted((key(s), s) for s in L)]
は反転スライスt[::-1]
を使用します。
詳細については、Python Sorting HOWTOを参照してください。