我正在嘗試生成一個函數,該函數返回列表>元組>列表組合中各個數字之和的排序列表。例子: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])]注意數字本身是如何不改變順序的——這是一個關鍵要求,因為它與坐標有關。只是基于數字總和的列表元素的順序。
1 回答

拉莫斯之舞
TA貢獻1820條經驗 獲得超10個贊
您可以使用lambda
函數作為鍵進行排序。此 lambda 函數返回未排序列表中元組的列表元素的總和:
>>> sorted(unsorted_list, key=lambda x: sum(x[1])) [('blue', [1, 0, 1]), ('green', [2, 3, 2]), ('red', [5, 2, 1])]
添加回答
舉報
0/150
提交
取消