heapq: Какой элегантный способ использовать настроенный ключ приоритета со связанными данными, которые не сопоставимы?
Как показано в базовом примере в документе, всегда можно использовать кортеж, чтобы первый элемент сравнивался как ключ приоритета. Однако что, если связанные данные не сопоставимы? Что было бы элегантным способом решить эту проблему?
Например,
import heapq
h = [(3, 2), (4, 3)]
heapq.heapify(h)
heapq.heappush(h, (3, (0, 1)))
Это излучает
TypeError: unorderable types: tuple() < int()