在 Python2.x 中 sort 支持一个可选函数, 可以调用它来进行比较。
该函数应该接受两个参数进行比较,然后小于返回一个负值,相等则返回零,大于返回一个正值。
该比较返回正值则交换两个数的位置。
# python2.x def compare(x, y): return x - y sorted([5, 2, 4, 1, 3], cmp=compare) # 输出: [1, 2, 3, 4, 5]
在 Python3 中取消该比较函数,可用functools.cmp_to_key()来实现以上功能
详见functools.cmp_to_key(func)函数
from functools import cmp_to_key def compare(x, y): return x - y sorted([5, 2, 4, 1, 3], key=cmp_to_key(compare)) # sorted([5, 2, 4, 1, 3], key=cmp_to_key(lambda x, y: x-y)) # 输出: [1, 2, 3, 4, 5]



