J'ai besoin d'utiliser une file d'attente de priorité dans mon code Python. En regardant autour de quelque chose d'efficace, je suis tombé sur heapq. Il semble bien, mais semble être spécifié que pour les entiers. Je suppose que cela fonctionne avec tous les objets qui ont les opérateurs de comparaison, mais il ne précise pas ce que les opérateurs de comparaison dont il a besoin.
En outre, heapq
semble être implémenté en Python, donc il n'est pas rapide.
Êtes-vous au courant de toutes les implémentations rapides pour les files d'attente de priorité en Python ? Idéalement, je voudrais la file d'attente pour être générique (c'est à dire bien travailler pour n'importe quel objet avec un certain opérateur de comparaison).
Merci d'avance
Mise à jour:
Re comparaison en heapq
, je peux soit utiliser un (priority, object)
que Charlie Martin suggère, ou tout simplement mettre en oeuvre __cmp__
pour mon objet.
Je suis toujours à la recherche de quelque chose de plus rapide que d' heapq
.