все Python 3functoolsфункция
functools.cmp_to_key
functools
Превращает старую функцию сравнения cmp(a, b)→int в key-функцию для sorted()/min()/max().
Синтаксис
functools.cmp_to_key(func)
Нужен только там, где порядок нельзя выразить одним ключом, потому что решение зависит сразу от пары элементов — классика вроде «склеить числа так, чтобы получилось наибольшее». В остальных случаях обычный key= быстрее: ключ считается один раз на элемент, а функция сравнения дёргается порядка n log n раз, да ещё через объект-обёртку. И cmp должна возвращать отрицательное число, ноль или положительное, а не True/False.
Примеры
import functools
def cmp(a, b):
return a - b
print(sorted([3, 1, 2], key=functools.cmp_to_key(cmp))) # → [1, 2, 3]
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности