使った様々なソートのテクニックを探索します。メソッドを呼びだしても同じことができます。元々のリストが不要な場合には、わずかですがより効率的です。メソッドはリストにのみ定義されています。関数は任意のイテラブルを受け付けます。パラメータがあります。これは比較を行う前にリストの各要素に対して呼び出される関数を指定するパラメータです。返さなければいけません。この制約によりソートを高速に行えます、キー関数は各入力レコードに対してきっちり一回だけ呼び出されるからです。ある利用パターンはいくつかの要素から成る対象をインデクスのどれかをキーとしてソートすることです。使うことでオブジェクトに対しても動作します。高速で扱いやすいアクセサ関数を提供しています。モジュールの関数は複数の段階でのソートを可能にします。真偽値として受け付けます。フラグとして利用されます。あることが保証されています。これはレコードの中に同じキーがある場合、元々の順序が維持されるということを意味します。前にあること注意してください。この素晴しい性質によって複数のソートを段階的に組み合わせることができます。15)]この処理は、リストおよびフィールド名とソート順序のタプルを複数受け取れるラッパー関数へ抽象化できます。アルゴリズムが利用されていて、効率良く複数のソートを行うことができます、これは現在のデータセット中のあらゆる順序をそのまま利用できるからです。呼ばれています:まず、元となるリストをソートしたい順序を制御する新しい値でデコレートします。次に、デコレートしたリストをソートします。最後に、デコレートを取り除き、新しい順序で元々の値のみを持つリストを作ります。最初の要素が比較され、同じ場合には第二の要素が比較され、以下も同様に動きます。二つの要素が同じキーを持つ場合、それらの順序がソートされたリストでも維持されます。元々の要素が比較可能な要素を持つとは限りません、なぜならデコレートされたタブルの順序は多くの場合、最初の二つの要素で決定されるからです。例として元のリストは直接比較できない複素数を含むことができます。