私はリストのリストを持っていますmy_list
例えば
[
['item 3.1', 'item 3.2', 'item 3.3', 'item 3.4', 'item 3.5'],
['item 3.1', 'item 3.2', 'item 3.2', 'item 3.2', 'item 3.2'],
['item 3.1', 'item 3.2', 'item 3.2', 'item 3.6', 'item 3.2'],
['item 3.1', 'item 2.2', 'item 2.4', 'item 2.7', 'item 2.5'],
['item 2.1', 'item 2.2', 'item 2.3', 'item 2.4', 'item 2.5'],
['item 1.1', 'item 1.2', 'item 1.3', 'item 1.4', 'item 1.5'],
['item 4.1', 'item 4.2', 'item 4.3', 'item 4.4', 'item 4.5'],
['item 1.1', 'item 1.2', 'item 1.3', 'item 1.5', 'item 1.5']
]
このリストを複数のレベルで注文したいのですが、レベルの1つが顧客の注文ですが、これを行う方法がわかりません。
たとえば、最初に最初のアイテムで注文し、次にその注文内で注文し、次に3番目のアイテムで注文し、次にその注文内で4番目のアイテムで注文します。しかし、私は最初のアイテムをアルファベット順ではなく、この特定の順序で注文/並べ替えたいと思っています。
item 4.1
item 2.1
item 3.1
item 1.1
したがって、(ソート後の)最終的なリストは次のようになります。
[
['item 4.1', 'item 4.2', 'item 4.3', 'item 4.4', 'item 4.5']
['item 2.1', 'item 2.2', 'item 2.3', 'item 2.4', 'item 2.5'],
['item 3.1', 'item 3.2', 'item 3.2', 'item 3.2', 'item 3.2'],
['item 3.1', 'item 3.2', 'item 3.2', 'item 3.6', 'item 3.2'],
['item 3.1', 'item 3.2', 'item 3.3', 'item 3.4', 'item 3.5'],
['item 3.1', 'item 2.2', 'item 2.4', 'item 2.7', 'item 2.5'],
['item 1.1', 'item 1.2', 'item 1.3', 'item 1.4', 'item 1.5'],
['item 1.1', 'item 1.2', 'item 1.3', 'item 1.5', 'item 1.5'],
]
次のようにすることで、複数のレベルを並べ替えることができます。
s = sorted(my_list, key=itemgetter(0,2,3))
しかし、これはそれらをすべてアルファベット順にソートし、私が行う方法がわからないのは、カスタム順序でソートされる最初の列を設定することです。