单条件 sort / sorted

1、常规不多讲,a.sort() 在a原地排序,排序后a顺序改变, sorted(a)返回排序后的序列,a本身顺序不改变。可选为reverse, True标识倒序,默认False, 从小到大排列。

a = [3, 2, 5, 1]
b = sorted(a)# b= [1, 2, 3, 5]
# a = [3, 2, 5, 1]c = [3, 2, 5, 1]
c.sort()# c =  [1, 2, 3, 5]

2、带lambda表达式的sort或者sorted

题目: 按start排序,返回key, 由小到大排列。

a = {'a': {'start': 11, 'end': 20},'d': {'start': 10, 'end': 20},'c': {'start': 13, 'end': 20}
}b = sorted(a.keys(), key=lambda x: a[x]['start'])
# b = ['d', 'a', 'c']

多条件排序 sort / sorted

1、 多条件排列方法相同,即使说,多个条件都是从小到大或者都是从大到小。

题目: 按start从小到大排列, 如果start相同,则按end从小到大排列。

a = {'a': {'start': 10, 'end': 20},'d': {'start': 10, 'end': 19},'c': {'start': 13, 'end': 20}
}
d = sorted(a.keys(), key=lambda x: (a[x]['start'], a[x]['end']))# d = ['d', 'a', 'c']

2、 多条件排序,即是说,按条件1从小到大排列,如果条件1相同,条件2按从大到小排列。反之一样。
题目: 先按start从小到大排列,如果start相同,按end从大到小排列。

a = {'a': {'start': 10, 'end': 20},'d': {'start': 10, 'end': 19},'c': {'start': 13, 'end': 20}
}d = sorted(a.keys(), key=lambda x: (a[x]['start'], -a[x]['end']))
# d = ['a', 'd', 'c']

题目: 先按start从大到小排序,如果start一样,按名字从小到大排序。最后得到名字key。

a = {'a': {'start': 10, 'end': 20},'d': {'start': 10, 'end': 19},'c': {'start': 3, 'end': 20}
}m = sorted(a.keys(), key=lambda x: (-a[x]['start'], x), reverse=True)[::-1]# m = ['a', 'd', 'c']

题目 如果两个条件都是str 呢,一个顺序,一个倒序排?
按start从小到大,按end从大到小

和第二个类别第一个一样,数字可以直接加-, 字符串就可以直接加 not

a = {'a': {'start': '10', 'end': '20'},'d': {'start': '10', 'end': '19'},'c': {'start': '3', 'end': '20'}
}
m = sorted(a.keys(), key=lambda x: (a[x]['start'], not (a[x]['end'])), reverse=True)
# m = ['a', 'd', 'c']

python sort多条件排序相关推荐

  1. python sort给字母排序_python sort、sorted高级排序技巧

    Python list内置sort()方法用来排序,也可以用python内置的全局sorted()方法来对可迭代的序列排序生成新的序列. 1)排序基础 简单的升序排序是非常容易的.只需要调用sorte ...

  2. python sort是什么排序_python的sort()排序方法

    很多时候我们的需要排序,例如下面这个情况: l = [[2, 3], [6, 7], [3, 34], [24, 64], [1, 43]] 可能我们需要按按照没个元素的第一个数值的大小进行排序 如果 ...

  3. python sort()、sorted()

    python sort.sorted排序 这篇文章主要介绍了python sort.sorted高级排序技巧,本文讲解了基础排序.升序和降序.排序的稳定性和复杂排序.cmp函数排序法等内容.     ...

  4. python 排序 sorted 如果第一个条件 相同 则按第二个条件排序

    python 排序 sorted 如果第一个条件 相同 则按第二个条件排序 怎样遍历一个list  符合下列条件 1. 按照元组的第一个从小到大排序 2. 如果第一个相同  则按照元组第2个从大到小 ...

  5. python中升序降序问题_飘逸的python - 有的升序有的降序的情况下怎么多条件排序...

    之前在统计导出各区服玩家消费的时候需要进行升序降序混搭的多条件排序. 需求是这样的.区服从小到大排,如果区服相同,则按消费从大到小排. 实现方法是利用python的sort算法是稳定排序,对数据进行多 ...

  6. python 多条件 选择 算法_浅析Python中的多条件排序实现

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

  7. python list map成员排序_python的map关于Python列表排序方法reverse、sort、sorted详细说明...

    python语言中的列表排序方法有三个:reverse反转/倒序排序.sort正序排序.sorted可以获取排序后的列表.在更高级列表排序中,后两中方法还可以加入条件参数进行排序. reverse() ...

  8. python排序链表_python按照多个条件排序的方法

    python按照多个条件排序的方法 对tuple进行排序,先按照第一个元素升序,如果第一个元素相同,再按照第二个元素降序排列. L = [(12, 12), (34, 13), (32, 15), ( ...

  9. python多条件排序

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

最新文章

  1. 005,使用Java客户端连接RabbitMQ,构造我们的第一个Publish和Consumer应用
  2. 157所中国内地高校上榜!最新世界大学学术排名发布
  3. 多家IT企业通过CNNIC“可信网站”验证
  4. 【大咖论道】周志华,唐杰教授等专家,站在 2022,展望大模型的未来
  5. Typora最好用的Markdown编辑器
  6. OpenCV创建校准图案calibration pattern
  7. sendData to ABAP backend via multiple form content type
  8. ipv6单播地址包括哪两种类型_IPv6基础介绍
  9. mysql 启动必须加-h_Windows 安装 nginx,MySQL 等软件并加入系统服务启动详细
  10. hdfs命令,hadoop基本常用命令
  11. 常用UCI数据集链接,mark
  12. 使用OpenCV探测来至运动的结构
  13. Ubuntu16 下载软件Aria2 全局配置方法(最全组合)
  14. 产品经理们如何看待NPDP认证?
  15. Git的author与committer的区别
  16. python的学习笔记案例1--汇率兑换3.0
  17. VB.NET合并图片
  18. 股票交易接口与各种路由器接口与连接方法
  19. C#实现自己的远程桌面控制工具
  20. 【discuzx2】forum_index.php文件的分析

热门文章

  1. RocketMQ消息生产者是如何选择Broker的
  2. Number Sequence/数字序列
  3. 网络编程——epoll
  4. 从简单的信道估计说起
  5. centos安装mysql_centos如何安装mysql
  6. DRV8833真值表
  7. 职场拓展人脉的老派艺术
  8. Git提示:ssh: Could not resolve hostname github.com: No address associated with hostname
  9. ESMTP协议与SMTP协议
  10. ubutun 滑动 触控板_Ubuntu触控板支持多指手势和滑动切换应用