2014-09-25 52 views
0

這是一個有趣的問題:訂購多個分類陣列

我已經整理陣列

a1 : [50,30,20,5] 
a2 : [30,10,3,1] 
a3 : [50,40,30,10] 

每個數組進行排序,我需要按順序排列,其中陣列具有最高的號碼安排,如果有一個領帶考慮數組中的下一個元素。

Ex。在上面的例子中50 A1和A3之間的配合,所以我們比較30和40,因此順序是

A3,A1,A2

如何在Python做到這一點?實現這個的算法應該是什麼。

+0

算法被稱爲 「字典序」,用人類語言詞典比喻。要判斷是否在'aardvark'之前或之後出現'and',你比較第一個字母,它們都是'a',所以你比較第二個字母,'n'出現在'a'之後,所以你有你的答案。只需將「letter」替換爲「list element」,它就是您想要的相同算法。 – abarnert 2014-09-25 18:41:18

回答

16

比較Python中的兩個列表默認情況下會比較這些元素,所以您只需將列表放在列表中並對其進行排序即可。

my_arrays = [ 
    [50,30,20,5], 
    [30,10,3,1], 
    [50,40,30,10] 
] 

my_arrays.sort(reverse=True) 

print my_arrays 

結果:

[ 
    [50, 40, 30, 10], 
    [50, 30, 20, 5], 
    [30, 10, 3, 1] 
]