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

标签 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]] 当元素长度相同时,应该逐个元素比较返回。

我可以很容易地按元素的长度对列表进行排序,但是在那之后我该如何求助呢?

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

关于python - 根据长度排序python列表,然后根据内容排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22900745/

相关文章:

python - 运行IPython/Jupyter Notebook 会影响程序速度吗?

python - Mayavi contour3d 文档提到 "the arrows"时是什么意思?

python - Pandas:如何对多级 DataFrame 中子级的最大 3 个值求和

r - 根据行模式对行进行排序

bash - 在 bash 中按日期排序文件列表

java - 在Java中对包含数字的字符串进行排序

python将不同的**kwargs传递给多个函数

python - Pandas plot hist sharex=False 的行为与预期不符

c# - 考虑数字的字符串比较

python - 合并两个 Pandas 数据帧,通过平均在一个时间列上重新采样