functools.cmp_to_key

Преобразует старомодную функцию сравнения двух аргументов в key-функцию для sorted, min, max и подобных.

Сигнатураfunctools.cmp_to_key(func)

Функция сравнения возвращает отрицательное число, ноль или положительное. Поскольку современный Python принимает только key, cmp_to_key служит мостом для сложной логики сравнения.

from functools import cmp_to_key

def compare(a, b):
    return len(a) - len(b)   # короче — раньше

words = ['груша', 'ананас', 'мак']
print(sorted(words, key=cmp_to_key(compare)))
# ['мак', 'груша', 'ананас']
← Все записи: Модули collections и functools
Поддержать проект