1
能否請你幫我算出這個排序基於最大長度和最大總和
q = [[12, 13, 14], [8, 9, 10,11], [2, 3, 4], [5, 6, 7]]
想我也喜歡Q A名單,我怎麼排序的基礎上
- 最大長度子列表的和 的子列表的
- 最大總和
輸出應爲:
個q = [[8,9,10,11],[12,13,14][5,6,7],[1,2,3]]
能否請你幫我算出這個排序基於最大長度和最大總和
q = [[12, 13, 14], [8, 9, 10,11], [2, 3, 4], [5, 6, 7]]
想我也喜歡Q A名單,我怎麼排序的基礎上
輸出應爲:
個q = [[8,9,10,11],[12,13,14][5,6,7],[1,2,3]]
供應的標準,爲key
lambda函數:
sorted(q, key=lambda sub: (len(sub), sum(sub)), reverse=True)
>>> [[8, 9, 10, 11], [12, 13, 14], [5, 6, 7], [2, 3, 4]]
的lambda
功能將每個子列表x
和排序是基於它的len
,在情況下的len
結果不足以作出決定,其內容的sum
用於打破平局。
嘗試:
sorted(q, lambda a,b: len(b)-len(a) or sum(b)-sum(a))
@Jim它工作在Python 2而不是在Python 3 – acw1668
唉唉它使用'cmp'在Python 2.我已經完全忘記了這一點,我會勸你那點這不是最便攜的選擇;-)。 –