今天在刷leetcode的时候,对于179题返回最大数,用python2中的sorted(cmp)会很方便,但是在python3中这一参数被取消了,经过查找,发现应该借助functools中的cmp_to_key函数,直接贴代码

import functools

def cmp(a,b):

if a > b :

return -1

elif a < b :

return 1

else:

return 0

nums = [1,2,3,4,5,6]

sorted_nums = sorted(nums, key = functools.cmp_to_key(cmp))

Out[30]: [6,5,4, 3, 2, 1]

但注意需要转换的cmp函数的返回值必须是0, 1, -1

知识点扩展:

为什么Python中sort方法和sorted函数调用废弃使用cmp参数

Python中sort方法和sorted函数老猿在前面一些章节介绍过,具体语法及含义在此不再展开说明,但老猿在前面学习相关内容时,只使用了简单的案例,对这两个方法的key参数没有深入研究,总以为就是以前c语言排序算法中的cmp函数。今天在研究富比较方法的运用时才发现key根本不是cmp函数,而是一个只针对比较元素自身的函数,不像cmp函数是两个对象之间比较。

经查阅资料和测试,发现其实早期的Python版本中是提供了cmp函数的,其版本演进沿革如下:

Python2.1以前的排序比较方法只提供一个__cmp__方法,没有__lt__等6个富比较方法, Python 2.1引入了富比较方法,Python3.4之后作废了__cmp__方法。相应地从Python2.4开始,list.sort() 和 sorted() 都增加了一个 ‘key' 参数用来在进行比较之前指定每个列表元素上要调用的函数。

为什么要这么处理呢?这是因为cmp方法本身也是针对对象的特定元素来进行比较的,直接使用特定元素的值更快捷、效率更高。

到此这篇关于python3中sorted函数里cmp参数改变详解的文章就介绍到这了,更多相关python3中sorted函数里关于cmp这一参数的改变内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

本文标题: python3中sorted函数里cmp参数改变详解

本文地址: http://www.cppcns.com/jiaoben/python/302782.html

pythonsorted函数cmp_python3中sorted函数里cmp参数改变详解相关推荐

  1. axios vue 回调函数_vue中的ajax请求和axios包详解

    在vue中,经常会用到数据请求,常用的有:vue-resourse.axios 首先,引入axios CDN: npm: npm install axios 并在全局的js中引入:import axi ...

  2. java drawimage 参数_小程序中canvas的drawImage方法参数使用详解

    最近在开发小程序,海报生成的过程中,要在carvas中不断去添加图片,对小程序的drawImage参数不是很明确,这次解惑. 示例代码 有三个版本的写法: drawImage(imageResourc ...

  3. python中sorted函数的用法_Python3 中sorted() 函数的用法

    描述 sorted() 函数对所有可迭代的对象进行排序操作. 语法 sorted(iterable, key=None, reverse=False) iterable – 可迭代对象. key – ...

  4. python 函数参数self_Python类中self参数用法详解

    Python编写类的时候,每个函数参数第一个参数都是self,一开始我不管它到底是干嘛的,只知道必须要写上.后来对Python渐渐熟悉了一点,再回头看self的概念,似乎有点弄明白了. 首先明确的是s ...

  5. mysql去重函数的使用方法_MySQL中使用去重distinct方法的示例详解

    一 distinct 含义:distinct用来查询不重复记录的条数,即distinct来返回不重复字段的条数(count(distinct id)),其原因是distinct只能返回他的目标字段,而 ...

  6. colsure php_PHP_PHP中Closure类的使用方法及详解,Closure,匿名函数,又称为Anonym - phpStudy...

    PHP中Closure类的使用方法及详解 Closure,匿名函数,又称为Anonymous functions,是php5.3的时候引入的.匿名函数就是没有定义名字的函数.这点牢牢记住就能理解匿名函 ...

  7. html中text函数,Excel中text函数的使用方法

    说到Excel,相信大家都再熟悉不过了,但说到Excel中text函数的使用方法,可能很多人都不太熟悉,下面随学习啦小编一起看看吧. Excel中text函数的使用方法 首先解释一下text函数的基本 ...

  8. linux 内核 fget,fgets函数 linux中fgets函数怎么用

    一个函数该如何使用?我们最先要了解的就是这个函数的语法以及具体的含义是什么,所以今天我们就来看一看fgets函数在实际的运用过程当中是如何使用的,希望能给大家带来一定的帮助. fgets函数--lin ...

  9. python中可变参数*args传入函数时的存储方式为_python 中文读法详解Python函数可变参数定义及其参数传递方式...

    Python函数可变参数定义及其参数传递方式详解 python中 函数不定参数的定义形式如下 1. func(*args) 传入的参数为以元组形式存在args中,如: def func(*args): ...

  10. mysql中sign函数_Oracle中sign函数和decode函数的使用

    在逻辑编程中,经常用到If ndash; Then ndash;Else 进行逻辑判断.在DECODE的语法中,实际上就是这样的逻辑处理过程.它的语法 1.比较大小函数SIGN sign(x)或者Si ...

最新文章

  1. 听声辨位过时了!这个AI系统仅凭光回声就能得到3D图像
  2. 3 x 10的python表达式_已知 x = [3, 5, 7],那么表达式 x[10:]的值为_学小易找答案
  3. C# 子类实例化基类 基类使用不了子类的方法_C#学习笔记11--接口/泛型
  4. flask 项目基本框架的搭建
  5. 用java制作心理测试软件_Java 程序员必备的10款开源工具
  6. 7.8 一阶常系数线性方程
  7. 简单小知识 记录一下 慢慢更新积累
  8. 文件怎么更新_干货!Win10更新总失败?学会这三招搞定它
  9. c语言高级代码编程图,c语言图形编程代码(C language programming code).doc
  10. clover更新驱动 后不能开机_Big Sur安装常见问题【持续更新】
  11. 深度学习HDR算法总结
  12. Word 2016插入公式快捷键
  13. LeetCode 592
  14. 笔记本计算机风扇连线,机箱风扇电源怎么接线?机箱风扇接口知识及接法图解教程...
  15. 解决uniapp编译为微信小程序以后vender.js的文件过大的问题
  16. 一个简单炫酷的前端小项目(html+css+js)----3D图片演示
  17. 微信智慧支付日系统服务器崩溃,微信支付大面积出现故障 微信支付系统繁忙怎么解决 微信支付崩溃原因是什么...
  18. 淘宝618列车喵币自动做任务app 懒人一键安装包
  19. 【行研报告】2021年Q3小红书美妆行业营销报告—附下载链接
  20. Kafka有多个broker的例子——重点是Replicas和lsr和Leader位置

热门文章

  1. 微信小程序 import文件大小限制
  2. Androidd打开文件选择器并返回文件的真实路径——听风便是雨,倚栏卧人间
  3. ajax回调函数运用(由前端到后端代码全过程)
  4. 基于SLAM的机器人的自主定位导航
  5. 阿里某程序员吐槽:绩效375同事离职被批准,绩效325同事离职却被卡
  6. 华为路由器配置网络地址转换NAT/静态NAT/动态NAT/Easy-ip/NAPT代理上网
  7. Java将指定文件/文件夹压缩成zip、rar压缩文件--解決中文乱码
  8. SetLocale和GetLocale函数
  9. 服务器cpu虚拟化怎么开启,开启cpu虚拟化
  10. Spring Cloud学习笔记(二)Restful理解及微服务的Restful调用