用Python按多个值排序列表中的列表

0 投票
1 回答
660 浏览
提问于 2025-04-17 06:08

我需要对一个列表进行排序,这个列表里面又包含了多个小列表,每个小列表里有三个整数,像这样:

[[3,1,0],[1,2,3],[3,2,0],[3,1,1]]

关键是我需要先根据每个小列表的第一个数字(entry[0])来排序,如果有两个小列表的第一个数字相同,那就再看第二个数字(entry[1])来排序,如果第二个数字也相同,那就最后看第三个数字(entry[2])。所以,上面的列表排序后应该是:

[[3,2,0],[3,1,1],[3,1,0],[1,2,3]]

我总是想得太复杂,关于循环和排序的语句,我一直没能找到一种方法来按顺序检查这些小列表,而不是根据这些值重新排列我的列表,保持原来的层次结构。

有什么建议吗?

1 个回答

8

这是比较列表时的默认行为。

x = [[3,1,0],[1,2,3],[3,2,0],[3,1,1]]
x.sort(reverse = True)
print(x)

撰写回答