100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > Python自定义排序规则:functools.cmp_to_key()

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

时间:2022-09-12 07:16:33

相关推荐

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

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

使用场景

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

使用规则

以剑指offer45题为例:

def cmp(a, b):if a + b > b + a:return 1elif a + b < b + a:return -1else: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)) # 不写时,默认是按照从“小”到“大”的顺序排列

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。