使用 lambda、python 对元组列表进行排序

问题描述 投票:0回答:1

我有一个包含(名称,分数)的元组列表。
我想对第二个元素上的列表进行排序(reverse = True),如果两个名称相似,则对第一个元素进行排序,但不使用反向。
我对任务的第二部分有问题,我自己找不到任何解决方案,我自己也找不到任何解决方案。
感谢您考虑我的问题。

假设这是以下列表:

averages = [('Ryan',7), ('Brian',11), ('Aiden',11), ('Jack',7), ('Mia',20)]

我使用 lambda 来实现它,如下所示:

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

#output:
[('Mia', 20), ('Brian', 11), ('Aiden', 11), ('Ryan', 7), ('Jack', 7)]

但是我想要的输出是:

[('Mia', 20), ('Aiden', 11), ('Brian', 11), ('Jack', 7), ('Ryan', 7),]
python python-3.x list sorting lambda
1个回答
0
投票

试试这个:

averages.sort(key=lambda x: (-x[1], x[0]))
© www.soinside.com 2019 - 2024. All rights reserved.