Python,如何基于和对列表排序

2024-09-26 17:36:24 发布

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

a = [('dog', 4, 5), ('cat', 1, 3), ('house', 6, 3), ('car', 1, 1), ('boyfriend', 2, 2), ('doll', 1, 1)

如何根据这两个数字之间的和以降序对列表排序?如果总和相同,如何根据第一个元素对其排序?在

我的名单应该是:

^{pr2}$

Tags: 元素列表排序数字carcathousedog
1条回答
网友
1楼 · 发布于 2024-09-26 17:36:24

使用自定义key函数返回一个元组,其中第一项是每个子元素的总和,第二项是每个子元素的第一项:

In [2]: sorted(a, key=lambda item: (-(item[1] + item[2]), item[0]))
Out[2]: 
[('dog', 4, 5),
 ('house', 6, 3),
 ('boyfriend', 2, 2),
 ('cat', 1, 3),
 ('car', 1, 1),
 ('doll', 1, 1)]

请注意,我们将返回负和,以按和反向排序,并保持对次关键字排序的要求为升序。在

相关问题 更多 >

    热门问题