如何在 python 中对第一列进行升序排序,如果相同则对第二列进行降序排序?

how to sort 1st column in ascending and if same then 2 nd column in descending in python?

我有一个列表 [('a',2),('h',5),('c',3),('h',4)]。我想以每个元组的第一个条目按升序排列的方式对其进行排序。如果有重复,则根据Python中的第2个元组降序排列。 我想要这个 :

[('a',2),('c',3),('h',5),('h',4)]

由于元组中的第二个元素是数字(因此是一元 - 运算符的有效操作数),您可以使用这个简单的键函数:

lst = [('a', 2), ('h', 5), ('c', 3), ('h', 4)]
sorted(lst, key=lambda x: (x[0], -x[1]))
# [('a', 2), ('c', 3), ('h', 5), ('h', 4)]