例如,如果我有这样的列表:
[[2, 4, 14, 5], [10, 15, 21, 74], [2, 54, 7, 22], [51, 23, 65, 43]]
我希望我的程序按列表中的第一个元素对其进行排序,如果任何第一个元素相等,则按列表中的第三个元素对这些相等的元素进行排序。
在上面的例子中,我希望得到这个:
[[**2**, 54, **7**, 22], [**2**, 4, **14**, 5], [**10**, 15, 21, 74], [**51**, 23, 65, 43]]
答案 0 :(得分:1)
您可以使用key
并传递一个lambda函数,返回第一个和第三个元素的元组。
s = [[2, 4, 14, 5], [10, 15, 21, 74], [2, 54, 7, 22], [51, 23, 65, 43]]
new_s = sorted(s, key=lambda x:(x[0], x[2]))
输出:
[[2, 54, 7, 22], [2, 4, 14, 5], [10, 15, 21, 74], [51, 23, 65, 43]]