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]倒排。 这里面是有逻辑顺序的。

 

posted @ 2018-12-12 16:12  zxyza  阅读(1302)  评论(0编辑  收藏  举报