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 標準庫文件中獲取並改編的示例。