我正在嘗試生成一個函數(shù),該函數(shù)返回列表>元組>列表組合中各個數(shù)字之和的排序列表。例子:unsorted_list = [('red', [5, 2, 1]), ('blue', [1, 0, 1]), ('green', [2, 3, 2])]程序需要查看列表中的數(shù)字,將它們相加(8,2,7),然后對數(shù)字進行排序,使排序列表與未排序列表的格式相同,但按數(shù)字總和排序。要生成這樣的列表:sorted_list = [('blue', [1, 0, 1]), ('green', [2, 3, 2]), ('red', [5, 2, 1])]注意數(shù)字本身是如何不改變順序的——這是一個關(guān)鍵要求,因為它與坐標(biāo)有關(guān)。只是基于數(shù)字總和的列表元素的順序。
1 回答

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