以特定方式对元组列表进行排序

时间:2016-10-29 15:39:35

标签: python list sorting key tuples

我试图按照每个元组包含的2个整数的总和按递减顺序对列表(其中元素是元组)进行排序

例如:

lst  = [('firstWord', 4, 3), ('secondWord', 9, 3), ('thirdWord', 2, 6)]

我需要使用参数4 + 3 = 7,9 + 3 = 12,2 + 6 = 8进行排序,因此返回的列表将是

lst  = [('secondWord', 9, 3), ('thirdWord', 2, 6), ('firstWord', 4, 3)]

1 个答案:

答案 0 :(得分:1)

你可以使用lambda来添加最后两个元素,然后否定它以便你得到一个降序:

>>> lst = [('firstWord', 4, 3), ('secondWord', 9, 3), ('thirdWord', 2, 6)]
>>> sorted(lst, key=lambda x: -1 * (x[1] + x[2]))
[('secondWord', 9, 3), ('thirdWord', 2, 6), ('firstWord', 4, 3)]