我有一个元组列表,其中每个元素类似于以下内容:(String, Integer)
。我想按元组的第二个元素以升序对列表进行排序,如果某些元组具有相同的Integer,我希望这些元素按其第一个元素(字符串)但按降序排序 。
如果第一个元素是整数,我通常会这样做:list.sort(key=lambda x: x[1], -x[0])
,但由于是字符串,所以我不能将lambda传递给负字符串!
PS:我无法导入任何库。谢谢!
答案 0 :(得分:2)
您可以使用此:
list.sort(key=lambda x: (-x[1], x[0]), reverse=True)
lambda表达式将为您想要较早排序的项目创建更高的值。然后reverse
参数会将它们排序到列表的开头。