如何按多个条件对 2D 列表进行排序:整数和字母?



我有一个2D列表(下面的示例(,每个元素由一个整数和一个字符串组成。我想对这个列表进行排序,以便数字降序排列,但是当有连续相同的数字时,我需要按字母顺序排序。

myList = [[2, "hello"],[3, "world"]]

要获得多条件排序,您可以对key参数进行tuple。在这里,您可以:

  1. 查看数字,使用减-进行反向顺序
  2. 查看字符串(如果数字相等(
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)

最新更新