До Python 3 я использовал bisect для вставки пользовательских объектов в список.bisect был счастлив этим, потому что у моего пользовательского объекта был def __cmp__
, который определял, как сравнивать объекты.Я прочитал обоснование отказа от поддержки cmp в Python 3, и я в порядке с этим.Я думал, что исправление для моего старого кода будет состоять в том, чтобы «украшать» мой пользовательский объект, превращая его в кортеж
(integer, user-defined object).
Однако, если у меня есть список моих кортежей, и попробуйте ...
i = bisect_left([list_of_tuples], (integer, user-defined object))
тогда я получаю сообщение об ошибке "builtins.TypeError: неупорядоченные типы ..."
Итак, (в python 3), как использовать bisect для списков элементов,t сделан полностью из вещей с естественным порядком сортировки?