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

python多重逻辑排序的更多相关文章

  1. Python应用——自定义排序全套方案

    本文始发于个人公众号:TechFlow,原创不易,求个关注 今天的这篇文章和大家聊聊Python当中的排序,和很多高级语言一样,Python封装了成熟的排序函数.我们只需要调用内部的sort函数,就可 ...

  2. Python实现各种排序算法的代码示例总结

    Python实现各种排序算法的代码示例总结 作者:Donald Knuth 字体:[增加 减小] 类型:转载 时间:2015-12-11我要评论 这篇文章主要介绍了Python实现各种排序算法的代码示 ...

  3. Python的列表排序

    Python的列表排序 本文为转载,源地址为:http://blog.csdn.net/horin153/article/details/7076321 在 Python 中, 当需要对一个 list ...

  4. 飘逸的python - 多条件排序及itemgetter的应用

    曾经客户端的同事用as写一大堆代码来排序,在得知python排序往往只需要一行,惊讶无比,遂对python产生浓厚的兴趣. 之前在做足球的积分榜的时候需要用到多条件排序,如果积分相同,则按净胜球,再相 ...

  5. Python 冒泡法排序

    def sequence(disorder='', separators=''): arrays = disorder.split(separators) def desc(): for i in r ...

  6. Python实现常用排序算法

    Python实现常用排序算法 冒泡排序 思路: 它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完 ...

  7. 深入Python(1): 字典排序 关于sort()、reversed()、sorted()

    http://www.cnblogs.com/BeginMan/p/3193081.html 一.Python的排序 1.reversed() 这个很好理解,reversed英文意思就是:adj. 颠 ...

  8. python的常见排序

    在python程序中,我们往往自始至终都在与序列(列表.字典.元组)打交道,而最常用的操作就是对序列排序了.在此简单总结一下python中的排序. 基本排序方法 在python中,list对象具有 s ...

  9. python中字典排序,列表中的字典排序

    python中字典排序,列表中的字典排序 一.使用python模块:operator import operator #首先要导入模块operator x = {1:2, 3:4, 4:3, 2:1, ...

随机推荐

  1. Android通过包名打开第三方应用

    import android.content.ComponentName; import android.content.Context; import android.content.Intent; ...

  2. Java 实现 栈

    package Test; import java.util.*; public class Stack_test { public static void main(String[] args) { ...

  3. 一、Cookie和Session介绍

    会话跟踪 1. 什么是会话  * 用户拨打10086,从服务台接通后会话开始:  * 用户发出话费查询请求,服务台响应.这是该会话中的一个请求:  * 用户发出套餐变更请求,服务台响应.这是该会话中的 ...

  4. iterm2 粘贴时有多余字符 0~ 1~

    https://github.com/ChrisJohnsen/tmux-MacOSX-pasteboard/issues/31 printf '\e[?2004l'

  5. Java创建文件夹、创建文件、上传文件,下载文件

    1.创建文件夹 /** * 判断文件夹是否存在 * @param myPath */ public static void judeDirExists(File myPath) { if (!myPa ...

  6. Tomcat远程debug配置

    当我们需要定位生产环境问题,而日志又不清晰的情况下,我们可以借助Tomcat提供的远程调试,设置如下: // Linxu系统: apach/bin/startup.sh开始处中增加如下内容: decl ...

  7. Linux centos 常用的命令

    Linux centos 下载命令:wget Linux centos 访问命令:vi Linux centos 插入命令:i Linux centos 保存退出: :wq Linux centos  ...

  8. python程序的打开运行方式

    python程序的运行方式大致可以分为两种,一种是直接通过python解释器直接解释型运行,另外一种是先把python程序编译为二进制文件再运行. .源代码 -python源代码的文件以"p ...

  9. 吴裕雄--天生自然C语言开发:作用域规则

    #include <stdio.h> int main () { /* 局部变量声明 */ int a, b; int c; /* 实际初始化 */ a = ; b = ; c = a + ...

  10. G - Radar Scanner Gym - 102220G(中位数~~)

    zThere are n rectangle radar scanners on the ground. The sides of them are all paralleled to the axe ...