根据子列表中的元素对列表进行排序

Gab*_*iel 1 python sorting list

我有一个简单的列表,由几个子列表组成,如下所示:

a = [[4, 3, 2, 1], [5, 8, 7, 6], [12, 11, 10, 9]]
Run Code Online (Sandbox Code Playgroud)

我需要按照子列表a[1]中的元素按降序排序,所以它会像这样:

sorted_a = [(3, 2, 1, 4), (8, 7, 6, 5), (11, 10, 9, 12)]
Run Code Online (Sandbox Code Playgroud)

我尝试过使用sort:

sorted_a = sorted(a, key=lambda x: -x[2])
Run Code Online (Sandbox Code Playgroud)

但它返回:

[[12, 11, 10, 9], [5, 8, 7, 6], [4, 3, 2, 1]]
Run Code Online (Sandbox Code Playgroud)

这根本不是我需要的.

eca*_*mur 5

所以你真的想要对子列表进行排序?

zip(*sorted(zip(*a), key=lambda x: -x[1]))
Run Code Online (Sandbox Code Playgroud)