python3中sorted函数里关于cmp这一参数的改变

Posted Z_Agent

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python3中sorted函数里关于cmp这一参数的改变相关的知识,希望对你有一定的参考价值。

今天在刷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

以上是关于python3中sorted函数里关于cmp这一参数的改变的主要内容,如果未能解决你的问题,请参考以下文章

尝试用不同语言写简单题的过程中的一些小发现

python3-排序

python3中替换python2中cmp函数

python3中使用python2中cmp函数出现错误

python中sort()方法的cmp参数

sort cmp函数的写法 (特判排序 二级排序)