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

烙印99
TA贡献1829条经验 获得超13个赞
由于元组中的第二个元素是数字(因此一元运算-符的有效操作数),您可以使用这个简单的键函数:
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)]
添加回答
举报
0/150
提交
取消