2017-05-31 135 views
1

基質通過用優先級列我有以下矩陣:訂單在python

catch = [['fc', 2, 12, 2], 
['abcd', 1, 2, 0], 
['ab', 1, 0, 0], 
['cf', 1, 13, 0], 
['fc', 1, 14, 0], 
['f', 1, 11, 0]] 

,我想此矩陣以通過首先將第四列(索引3)進行排序,當第四列的值是等於,按第一列(索引0)中字符串的長度排序。

我只是用

catch.sort(key=lambda x: x[3]) 

由第四列的矩陣排序

+0

請解釋我們是什麼問題? –

回答

3

只是讓你關鍵的函數返回一個元組:

catch.sort(key=lambda x: (x[3], len(x[0]))) 

,因爲兩個元是通過比較項目這工作項目,從索引0開始,一旦發現差異就停止(或者其中一個元組耗盡項目,在這種情況下,較長的元組被認爲較大,但這不會是因爲我們的元組都有2)的長度。

+0

謝謝它的作品! – jackjack