根据长度排序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中删除。