cmp to key

Python 改变了它的排序方法来接受一个关键功能。这些函数接受一个值并返回一个用于对数组进行排序的键。

旧比较函数用于获取两个值,如果第一个参数分别小于,等于或大于第二个参数,则返回 -1,0 或+1。这与新的键功能不兼容。

这就是 functools.cmp_to_key 的用武之地:

>>> import functools
>>> import locale
>>> sorted(["A", "S", "F", "D"], key=functools.cmp_to_key(locale.strcoll))
['A', 'D', 'F', 'S']

Python 标准库文档中获取并改编的示例。