我有一个列表,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 个级别是客户订单,但不知道如何执行此操作。
例如,我想先按第一项然后在该订单中订购,然后按第三项订购,然后在该订单中订购,按第四项订购。但我希望第一项按此特定顺序而不是按字母顺序排序/排序:
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))
但这会按字母顺序对它们进行排序,而我不知道该怎么做是将第一列设置为按自定义顺序排序。