当前位置: 首页 > article >正文

python-自定义排序函数sorted()

Python内置的 sorted()函数可对list进行排序:

>〉〉sorted([36, 5, 12, 9, 21])
[5, 9, 12, 21, 36]

但 sorted()也是一个高阶函数,它可以接收一个比较函数来实现自定义排序,比较函数的定义是,传入两个待比较的元素 x, y,如果 x 应该排在 y 的前面,返回 -1,如果 x 应该排在 y 的后面,返回 1。如果 x 和 y 相等,返回 0。

因此,如果我们要实现倒序排序,只需要编写一个reversed_cmp函数:

def reversed_cmp(x, y):    if x > y:        return -1    if x 〈 y:        return 1    return 0

这样,调用 sorted() 并传入 reversed_cmp 就可以实现倒序排序:

〉〉〉 sorted([36, 5, 12, 9, 21], reversed_cmp)[36, 21, 12, 9, 5]

sorted()也可以对字符串进行排序,字符串默认按照ASCII大小来比较:

>〉〉 sorted(['bob', 'about’, 'Zoo’, ’Credit'])[’Credit’, 'Zoo', 'about', 'bob’]

’Zoo'排在’about’之前是因为'Z'的ASCII码比’a’小。

对于比较函数cmp_ignore_case(s1, s2),要忽略大小写比较,就是先把两个字符串都变成大写(或者都变成小写),再比较。

参考代码:

def cmp_ignore_case(s1, s2):   

     u1 = s1.upper()   

     u2 = s2.upper()   

    if u1 < u2:        

          return -1   

    if u1 〉 u2:

        return 1    

    return 0

print sorted(['bob’, 'about’, 'Zoo’, 'Credit’], cmp_ignore_case)


http://www.kler.cn/a/405076.html

相关文章:

  • 开源许可协议
  • C++:类和对象(三)
  • 用pyspark把kafka主题数据经过etl导入另一个主题中的有关报错
  • python常用的排序算法
  • OBOO鸥柏车载广告屏:28.6寸液晶一体机的技术革新与应用前景
  • 【IDEA】解决总是自动导入全部类(.*)问题
  • OpenCV基本图像处理操作(六)——直方图与模版匹配
  • 二叉树路径相关算法题|带权路径长度WPL|最长路径长度|直径长度|到叶节点路径|深度|到某节点的路径非递归(C)
  • 一篇文章了解机器学习(下)
  • linux命令面试题及参考答案
  • 5G NR:TDD和FDD的技术差异
  • 数据结构 ——— 判断一棵树是否是完全二叉树
  • 数学建模学习(137):使用Python进行频数分析
  • c#基本数据类型占用字节长度/取值范围/对应.net类型
  • 【机器学习】聚类算法原理详解
  • python: generator model using sql server 2019
  • linux命令之netstat用法
  • MySQL 的 INSERT(插入数据)详解
  • 前端八股自学笔记分享—页面布局(二)
  • ETSI TS 102 226 V9.0.0 远程管理规范笔记
  • 利用Python编写简单登录系统
  • vim 使用技巧
  • 【ubuntu】ubuntu 22.04 切 gcc/g++ 版本
  • uniapp 城市选择插件
  • 人形机器人赛道资本之争:“南”[智元机器人],“北”[银河通用]
  • C语言:数组