在python3以后,sort方法和sorted函数中的cmp参数被取消,此时如果还需要使用自定义的比较函数,那么可以使用cmp_to_key函数。将老式的比较函数(comparison function)转化为关键字函数(key function)。与接受key function的工具一同使用(如 sorted(), min(), max(), heapq.nlargest(), itertools.groupby())。该函数主要用来将程序转成 Python 3 格式的,因为 Python 3 中不支持比较函数。
1、首先导入包
from functools import cmp_to_key
2、应用举例
我们要给一个列表按照我们自定义的方式进行降序排序,我们可以这样使用:
from functools import cmp_to_key
def custom_sorted(x,y):
if x>y:
return -1
if x<y:
return 1
return 0
print(sorted([2,3,1,5,4],key=cmp_to_key(custom_sorted)))
3、结果输出
参考文章1:python之自定义排序函数sorted()
参考文章2:Python functools模块之cmp_to_key