我有一个2D列表(下面的示例(,每个元素由一个整数和一个字符串组成。我想对这个列表进行排序,以便数字降序排列,但是当有连续相同的数字时,我需要按字母顺序排序。
myList = [[2, "hello"],[3, "world"]]
要获得多条件排序,您可以对key
参数进行tuple
。在这里,您可以:
- 查看数字,使用减
-
进行反向顺序 - 查看字符串(如果数字相等(
myList.sort(key=lambda x: (-x[0], x[1]))
# equivalent
myList = sorted(myList, key=lambda x: (-x[0], x[1]))
应用
myList = [[2, "hello"], [3, "world"], [2, "hallo"]]
myList.sort(key=lambda x: (-x[0], x[1]))
print(myList) # [[3, 'world'], [2, 'hallo'], [2, 'hello']]
你只需要做:
sorted(myList)