如何根据降序命令中元组中的另一个值(第三个值)对元组排序列表(基于第二个值)中的相似值进行排序

2024-04-19 19:15:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个格式的元组列表

[("d",21,5),(e,21,4),("a",20,1),("b",20,3),("c",20,2),...]

其中第一个值(a、b、c等)是唯一的,而元组中的其他两个值可能重复(如20)

我想根据元组中的第二个元素(这里是20,21)按升序对列表进行排序,比如

[a,b,c,d,e]

然后我希望基于相同的数字排序的值,比如(a,b,c),其中基于20的排序和基于21的(d,e)排序将基于元组的第三个值(这里是1,2,3,4,5)按降序排序,比如

[b,c,a,d,e]


Tags: 元素列表排序格式数字元组升序降序
1条回答
网友
1楼 · 发布于 2024-04-19 19:15:17

如果原始列表如下所示:

L = [("d",21,5),(e,21,4),("a",20,1),("b",20,3),("c",20,2),...]

然后,通过在sort函数中定义一个2元组键,可以按您想要的方式对其进行排序:

^{pr2}$

这样可以确保列表按元组中的第二个元素排序,而ties则由元组中第三个元素的反值来断开(即按第三个元素的降序排列)

相关问题 更多 >