python - 首先按第一列排序二维列表,然后按第二列排序

标签 python list sorting

我正在尝试找到一种对 2d 列表进行排序的好方法,首先按第一个值,然后按第二个值。

我认为一个例子将是最好的 如果我有一个列表

[[1,4],
[2,7],
[10,1],
[1,2],
[10,6]
[2,1]]

我想要这样排序

[[1,2],
[1,4],
[2,1],
[2,7],
[10,1],
[10,6]]

最佳答案

l=[[1,4],
[2,7],
[10,1],
[1,2],
[10,6],
[2,1]]
print(sorted(l,key=lambda x: (x[0],x[1]))) # use lambda to sort by "x[0]"-> first element of the sublists or x[1] -> second element, if its a tie
[[1, 2], [1, 4], [2, 1], [2, 7], [10, 1], [10, 6]]

或者简单地 sorted(l) of l.sort() 作为你的元素自然排序。

一个更好的例子是只按第二个值排序:

print(sorted(l,key=lambda x: (x[1])))
[[10, 1], [2, 1], [1, 2], [1, 4], [10, 6], [2, 7]]

关于python - 首先按第一列排序二维列表,然后按第二列排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25046306/

相关文章:

list - 在 Common Lisp 中合并两个列表

powershell - PowerShell:读取文本,正则表达式排序,将输出写入文件和格式化

c# - 按可以为 null 的父对象对 IList<Person> 进行排序

algorithm - 排序算法中决策树分析

python - 我怎样才能确保我的测试触及代码库的每一行?

python - Cython 是否将导入的模块编译为二进制文件的一部分?

python - 通过 sklearn 和 pandas 对单个 CSV 文件进行多重回归

python - 如何使用函数将列表相乘?

python - 当满足特定条件时从列表创建新列表

python - Dropbox API v2 - 上传文件