基于外部列表中的值对列表进行排序(Python)

基于外部列表中的值对列表进行排序(Python),python,list,sorting,Python,List,Sorting,此查询与上一个查询有些关联 其中,需要对以下列表进行排序 data=[[1,45,0],[2,49,2],[3,98,0],[4,82,1],[5,77,1],[6,98,2] 首先是内部列表中最后一个成员的值,如下所示 [[1,45,0],[3,98,0],[4,82,1],[5,77,1],[2,49,2],[6,98,2] 然后在子列表中进行排序,即首先使用中间成员作为键对最后一个成员为'0'的列表进行排序,然后按降序对最后一个成员为'1'的子列表进行排序,依此类推 现在,我想根据外部列表

此查询与上一个查询有些关联

其中,需要对以下列表进行排序

data=[[1,45,0],[2,49,2],[3,98,0],[4,82,1],[5,77,1],[6,98,2]

首先是内部列表中最后一个成员的值,如下所示

[[1,45,0],[3,98,0],[4,82,1],[5,77,1],[2,49,2],[6,98,2]

然后在子列表中进行排序,即首先使用中间成员作为键对最后一个成员为
'0'
的列表进行排序,然后按降序对最后一个成员为
'1'
的子列表进行排序,依此类推

现在,我想根据外部列表中这些元素的顺序进行排序,而不是按照最后一个成员的值进行排序。i、 e.如果外部列表为列表_1

`List_1 = [2, 0, 1]`
分类应产生

[[2, .49, 2], [6, .98, 2] [1, .45, 0], [3, .98, 0], [4, .82, 1], [5, .77, 1]]
最后,根据中间元素按降序排列子列表应产生:

[ [6, .98, 2],[2, .49, 2],   [3, .98, 0], [1, .45, 0], [4, .82, 1], [5, .77, 1]]
有什么建议吗?

在键中使用:

>>> data = [[1, .45, 0], [2, .49, 2], [3, .98, 0], [4, .82, 1],
            [5, .77, 1], [6, .98, 2]]
>>> List_1 = [2, 0, 1]
>>> sorted(data, key=lambda e: (List_1.index(e[2]), -e[1]))
[[6, 0.98, 2], [2, 0.49, 2], [3, 0.98, 0], [1, 0.45, 0],
 [4, 0.82, 1], [5, 0.77, 1]]