python多重排序问题。字母降序

时间:2019-06-19 16:38:49

标签: python sorting

我有一个元组列表,其中每个元素类似于以下内容:(String, Integer)。我想按元组的第二个元素以升序对列表进行排序,如果某些元组具有相同的Integer,我希望这些元素按其第一个元素(字符串)但按降序排序 。 如果第一个元素是整数,我通常会这样做:list.sort(key=lambda x: x[1], -x[0]),但由于是字符串,所以我不能将lambda传递给负字符串!

PS:我无法导入任何库。谢谢!

1 个答案:

答案 0 :(得分:2)

您可以使用此:

list.sort(key=lambda x: (-x[1], x[0]), reverse=True)

lambda表达式将为您想要较早排序的项目创建更高的值。然后reverse参数会将它们排序到列表的开头。