【问题标题】:Sorting a list of tuples by the sum of elements in inner lists [duplicate]按内部列表中元素的总和对元组列表进行排序[重复]
【发布时间】:2018-12-11 21:37:00
【问题描述】:

我正在尝试生成一个函数,该函数返回 list>tuple>list 组合中各个数字之和的排序列表。示例:

unsorted_list = [('red', [5, 2, 1]), ('blue', [1, 0, 1]), ('green', [2, 3, 2])]

程序需要查看列表中的数字,将它们相加(8,2,7),然后对数字进行排序,使排序后的列表与未排序的列表格式相同,但按总和排序数字。

要生成这样的列表:

sorted_list = [('blue', [1, 0, 1]), ('green', [2, 3, 2]), ('red', [5, 2, 1])]

注意数字本身不会改变顺序 - 这是一个关键要求,因为它与坐标有关。只是基于数字总和的列表元素的顺序。

【问题讨论】:

标签: python list sorting tuples


【解决方案1】:

您可以使用lambda 函数作为键进行排序。此 lambda 函数返回未排序列表中元组的列表元素的总和:

>>> sorted(unsorted_list, key=lambda x: sum(x[1]))
[('blue', [1, 0, 1]), ('green', [2, 3, 2]), ('red', [5, 2, 1])]

【讨论】:

    猜你喜欢
    • 2012-03-13
    • 2018-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-17
    • 2017-06-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多