Python Glossary English

все 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Сообщить о неточности