Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中,按具有优先级的列对矩阵排序_Python_Sorting_Matrix - Fatal编程技术网

在python中,按具有优先级的列对矩阵排序

在python中,按具有优先级的列对矩阵排序,python,sorting,matrix,Python,Sorting,Matrix,我有以下矩阵: 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]) 要按第四列对矩阵进行排序,只需使键函数返回元组: c

我有以下矩阵:

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]) 

要按第四列对矩阵进行排序,只需使键函数返回元组:

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

这是因为两个元组是逐项比较的,从索引0开始,一发现差异就停止(或者其中一个元组的项用完了,在这种情况下,较长的元组被认为较大,但这与此无关,因为我们的元组都有2的长度)。

请解释问题是什么?