用Python按多个值排序列表中的列表
我需要对一个列表进行排序,这个列表里面又包含了多个小列表,每个小列表里有三个整数,像这样:
[[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)