2017-05-31 92 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