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 - Fatal编程技术网

根据长度排序python列表,然后根据内容排序

根据长度排序python列表,然后根据内容排序,python,sorting,Python,Sorting,我需要根据元素的长度,然后根据内容对列表进行排序。 例如,对于一个输入[[1,2,3,4],[1,2,3],[2,3,4],我需要得到[[1,2,3,4],[2,3,4],[1,2,3]]:[1,2,3,4]具有最大的元素,然后[2,3,4]在其第一个元素中大于[1,2,3]。对于输入[[2,3,5],[1,2,3],[2,3,4],[[2,3,5],[2,3,4],[1,2,3]],当元素的长度相同时,应通过逐元素比较返回 我可以很容易地按照元素的长度对列表进行排序,但是在那之后我怎么能求助呢

我需要根据元素的长度,然后根据内容对列表进行排序。 例如,对于一个输入
[[1,2,3,4],[1,2,3],[2,3,4]
,我需要得到
[[1,2,3,4],[2,3,4],[1,2,3]]
:[1,2,3,4]具有最大的元素,然后[2,3,4]在其第一个元素中大于[1,2,3]。对于输入
[[2,3,5],[1,2,3],[2,3,4]
[[2,3,5],[2,3,4],[1,2,3]]
,当元素的长度相同时,应通过逐元素比较返回

我可以很容易地按照元素的长度对列表进行排序,但是在那之后我怎么能求助呢

>>> a = [[1,2,3,4],[1,2,3],[2,3,4]]
>>> sorted(a, key=len, reverse=True)
[[1, 2, 3, 4], [1, 2, 3], [2, 3, 4]]
不要。分类一次

key=lambda a: (-len(a), a)
不要。分类一次

key=lambda a: (-len(a), a)

最简单的方法是让
返回一个元组。因此,在这种情况下:

sorted(a, key=lambda item: (len(item), item), reverse=True)

最简单的方法是让
返回一个元组。因此,在这种情况下:

sorted(a, key=lambda item: (len(item), item), reverse=True)

定义你自己的功能

 def comparing(a, b):
    if len(a) != len(b):
       return len(a) - len(b)
    else:
       return sum(a) - sum(b)

定义你自己的功能

 def comparing(a, b):
    if len(a) != len(b):
       return len(a) - len(b)
    else:
       return sum(a) - sum(b)

比较函数在2.x中过时并从3.x中删除。比较函数在2.x中过时并从3.x中删除。