【问题标题】:sort a list of tuples in a specific way以特定方式对元组列表进行排序
【发布时间】:2016-10-29 15:39:34
【问题描述】:

我正在尝试根据每个元组包含的 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)]

【问题讨论】:

  • 您似乎希望我们为您编写一些代码。虽然许多用户愿意为陷入困境的编码人员编写代码,但他们通常只有在发布者已经尝试自己解决问题时才会提供帮助。展示这项工作的一个好方法是包含您迄今为止编写的代码、示例输入(如果有的话)、预期输出以及您实际获得的输出(控制台输出、回溯等)。您提供的详细信息越多,您可能收到的答案就越多。检查FAQHow to Ask
  • 感谢您的建议!我是这个社会的新手,所以谢谢你的提示。

标签: python list sorting key tuples


【解决方案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)]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-01-01
    • 2019-10-19
    • 1970-01-01
    • 1970-01-01
    • 2015-01-28
    • 1970-01-01
    • 1970-01-01
    • 2022-11-25
    相关资源
    最近更新 更多