首页 > 解决方案 > 当第一个排序键相同时如何使用两个不同的排序键对列表进行排序

问题描述

在 python 中,这是否可以使用两个不同的排序键对列表进行排序?我们有一个包含三个子列表的列表,如图所示,

list = [ [1,2,3], [1,1,2],[13,3,4] ]

我想利用heapq.nsmallest它对它进行排序,其中每个子列表中的第一个元素是排序键。如果第一个子列表(例如[1,2,3])和第二个子列表(例如[1,1,2])具有相同的排序键(例如1),我想使用第二个元素作为新的排序键。

因此预期的输出是:

orderedlist = [ [1,1,2],[1,2,3],[13,3,4] ]

标签: pythonsortingdata-structures

解决方案


您可以使用以下key参数sorted

list1 = [ [1,2,3], [1,1,2],[13,3,4] ]

print(sorted(list1,key = lambda x: x[1]))

输出:

[[1, 1, 2], [1, 2, 3], [13, 3, 4]]

推荐阅读