python多重逻辑排序
python有自带的排序sorted函数,而且用reverse =True or False,来控制降序还是升序。但是如果有多个条件需要排序应该如何办呢?
L = [(12, 12), (34, 13), (32, 15), (12, 24), (32, 11), (32, 11)] L.sort(key=lambda x: (x[0], -x[1]),reverse=True) print(L) 结果: [(34, 13), (32, 11), (32, 11), (32, 15), (12, 12), (12, 24)] 排序逻辑是:看到先按照tuple[1]进行倒排,如果tuple[1]相等就按照tuple[2]正排
L = [(12, 12), (34, 13), (32, 15), (12, 24), (32, 11), (32, 11)]
L.sort(key=lambda x: (x[0], x[1]),reverse=True)
print(L)
结果: [(34, 13), (32, 15), (32, 11), (32, 11), (12, 24), (12, 12)]
去掉了-之后,可以看到先按照tuple[1]进行倒排,如果tuple[1]相等就按照tuple[2]倒排。 这里面是有逻辑顺序的。