使用降序对列表列表进行排序,然后如果有平局,则对 python 中的另一个索引使用降序

Sort a list of lists using descending order, and then if there is a tie breaker, use descending order on another index in python

master_list = [["Hi", 2.00],["Hey", 6.01],["Hello", 9.56], ["How", 6.01]]
master_list.sort(key=lambda x: -(x[1], -x[0]))

我尝试使用此函数按数字降序对 master_list 进行排序,如果有平局,则按字符串降序排列。 但是,我收到错误“TypeError:一元的错误操作数类型 -:'str' 我不知道我做错了什么来得到这个错误。如何对列表进行排序?

这是因为您正在对元组字符串应用否定 (-)。使用sorted函数,可以使用reverse=True对数组进行降序排序。

sorted(master_list, key=lambda x: (x[1], x[0]), reverse=True)