我有一個嵌套列表如何在Python中對列表進行排序?
a=[[x1,y1],[x2,y2],[x1,y2],[x2,y1],[x7,y7],[x1,y3]]
我想作爲對它進行排序:
a=[[x1,y1],[x1,y2],[x1,y3],[x2,y1],[x2,y2],[x7,y7]]
我試圖用lambda函數,但它不會編譯:
a=sorted(a,lambda x,y:x==y?x[0]+x[1],x[0])
怎麼辦我用sorted
來獲得我想要的輸出?
我有一個嵌套列表如何在Python中對列表進行排序?
a=[[x1,y1],[x2,y2],[x1,y2],[x2,y1],[x7,y7],[x1,y3]]
我想作爲對它進行排序:
a=[[x1,y1],[x1,y2],[x1,y3],[x2,y1],[x2,y2],[x7,y7]]
我試圖用lambda函數,但它不會編譯:
a=sorted(a,lambda x,y:x==y?x[0]+x[1],x[0])
怎麼辦我用sorted
來獲得我想要的輸出?
你可以使用實際的Python語法,如conditional expression:
sorted(a, key=lambda x: x[0] + x[1] if x == y else x[0])
這是基於一個解釋你?
語法的JavaScript條件表達式的語法。
當然,這是假設有某個地方定義了一個獨立y
變量:
>>> a = [[1,1], [2,2], [1,2], [2,1], [7,7], [1,3]]
>>> y = [1, 1]
>>> sorted(a, key=lambda x: x[0] + x[1] if x == y else x[0])
[[1, 2], [1, 3], [1, 1], [2, 2], [2, 1], [7, 7]]
我得到這個Martjin的錯誤 - 看起來像一個缺少lambda的位置參數。 – jszakmeister 2013-04-07 11:17:51
相信sorted(a)
會給你想要的東西,右外的盒子:
>>> a = [[1,1], [2,2], [1,2], [2,1], [7,7], [1,3]]
>>> sorted(a)
[[1, 1], [1, 2], [1, 3], [2, 1], [2, 2], [7, 7]]
能告訴你一個實際的,可運行的例子,並解釋默認排序不會做什麼你需要什麼? – NPE 2013-04-07 10:52:50
我想看看我們是否可以使用上述問題的lambda函數 – learner 2013-04-07 11:03:15
@learner:由於語法不正確,我們只是猜測你想要什麼。你需要更清楚地表明你想要這種行爲。 – 2013-04-07 11:14:55