Один вопрос. Как отсортировать с помощью key по двум ключам в разном порядке?
Например, по ключу age по возрастанию а по name по убыванию?
Начинать городить на выходе tuple вида (-age, name)?
Такая сортировка — это уже целая фича, и было бы странно, если бы стандартная библиотека предоставляла такие возможности.
Один из вариантов реализации — определить rich compasion методы для объекта. Если критерии сортировки меняются — перед каждой сортировкой обвёртывать в объект с нужной конфигурацией сравнения.
Спасибо большое за информацию. Похоже key вычисляется один на элемент в первом проходе, а далее сортировка одних лишь ключей происходит, а cmp вызывается многократно для каждого конкретного элемента при сравнении его с другими.
Сортировки: key vs cmp