Python自定义排序规则:functools.cmp_to_key()

本文介绍了Python中如何使用functools.cmp_to_key()自定义排序规则,通过具体实例展示了如何定义比较函数,并解释了其与sort()函数的关系及reverse参数的作用。
部署运行你感兴趣的模型镜像

Python自定义排序规则:functools.cmp_to_key()

使用场景

fuctools.cmp_to_key()是用来自定义排序规则,类似于C++中的lambada函数一样,使得sort()函数可以按照自己定义的比较规则进行排序。

使用规则

  • 以剑指offer45题为例:
def cmp(a, b):
    if a + b > b + a:
        return 1
    elif a + b < b + a:
        return -1
    else:
        return 0

当使用nums.sort(key = functools.cmp_to_key(cmp))调用时,将nums按照从小到大的顺序排列。

  • 由以上例子可知,cmp中定义的规则就相当于是通过key参数告诉函数sort()如何对两个数进行比较,让它清楚什么样的条件是“大”,什么样的条件是“小”。
    注意:定义这个排序规则只是为了让sort()明白如何得到两个数中较“大”的那个与数组最后是“从小到大”排序还是“从大到小”排序没有关系。
  • sort()如何排序是由第二个参数reverse来确定的。
nums.sort(key = functools.cmp_to_key(cmp), reverse = True) # 数组nums按照从“大”到“小”的顺序排列
nums.sort(key = functools.cmp_to_key(cmp), reverse = False) # 数组nums按照从“小”到“大”的顺序排列
nums.sort(key = functools.cmp_to_key(cmp)) # 不写时,默认是按照从“小”到“大”的顺序排列

您可能感兴趣的与本文相关的镜像

Python3.10

Python3.10

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值