heapq: Какой элегантный способ использовать настроенный ключ приоритета со связанными данными, которые не сопоставимы?

Как показано в базовом примере в документе, всегда можно использовать кортеж, чтобы первый элемент сравнивался как ключ приоритета. Однако что, если связанные данные не сопоставимы? Что было бы элегантным способом решить эту проблему?

Например,

import heapq
h = [(3, 2), (4, 3)]
heapq.heapify(h)
heapq.heappush(h, (3, (0, 1)))

Это излучает

TypeError: unorderable types: tuple() < int()

0 ответов

Другие вопросы по тегам