Potrzebuję kolejki priorytetowej, która najpierw pobiera element o najwyższej wartości priorytetu. Obecnie używam klasy PriorityQueue z biblioteki Queue. Jednak ta funkcja zwraca najpierw tylko elementy o najniższej wartości. Wypróbowałem kilka brzydkich rozwiązań, takich jak (sys.maxint - priority), ale zastanawiałem się, czy istnieje bardziej eleganckie rozwiązanie.Kolejka priorytetowa o wyższym priorytecie jako pierwsza w języku Python
9
A
Odpowiedz
15
Zamiast tego użyj ujemnego priorytetu, nie trzeba odejmować od sys.maxint
.
queue.put((-priority, item))
Element o priorytecie -10 zostanie zwrócony przed pozycjami o priorytecie -5, na przykład.
Powiązane problemy
- 1. Złożoność kolejka priorytetowa AddAll()
- 2. Kolejka priorytetowa wskaźników struktury
- 3. Kolejka priorytetowa celu-c
- 4. Java: Kolejka priorytetowa
- 5. Następujące pakiety będą SUPERCEDED przez kanał o wyższym priorytecie
- 6. Priorytetowa kolejka wątków bezpiecznych dla Delphi?
- 7. Kolejka iteracyjna w języku Python
- 8. Kolejka priorytetowa STL w klasie niestandardowej
- 9. Czy istnieje kolejka priorytetowa Fibonacciego dla Haskella?
- 10. Kolejka priorytetowa oparta na bazie danych
- 11. Co oznacza "następujące pakiety zostaną zastąpione przez kanał o wyższym priorytecie"?
- 12. Czy w Scali jest utrzymywana niezmienna kolejka priorytetowa?
- 13. Wielkość kolejka priorytetowa zwiększa się, gdy przedmioty nie porównywalne dodaje
- 14. Kolejka priorytetowa STL i przeciążanie za pomocą wskaźników
- 15. Zapytanie o niskim priorytecie w Mysql
- 16. Kolejka priorytetowa Scala uporządkowana, która ma zawsze najniższy numer jako nagłówek, kolejność rosnąca.
- 17. Algorytm Dijkstry z kolejką o priorytecie min
- 18. Dyspozytornia priorytetowa w WPF
- 19. Jak iteracja trwa jako pierwsza w HashMap?
- 20. Python wątków i kolejka przykład
- 21. Czas letni w języku Python
- 22. Funkcja Push to Firebase za pomocą REST API o priorytecie
- 23. lepszy sposób, aby stworzyć uporządkowaną tablicę z kolejka priorytetowa w Javie
- 24. Przerwa w języku Python
- 25. Jak zachować kolejkę o dużym priorytecie z najważniejszymi pozycjami?
- 26. Deskryptory w języku Python nie działają w języku Python 2.7
- 27. Tworzenie kolejki wysyłkowej o wysokim priorytecie z GCD
- 28. Mylić o priorytecie między stemplerem a tagerem pos
- 29. Pokaż ciąg znaków Escaped jako Unicode w języku Python
- 30. Używanie identyfikatora obiektu jako skrótu dla obiektów w języku Python
Podczas gdy to działa, szczerze mnie to niepokoi, ponieważ to oznacza, że wszystkie inne powiązane logiki zostały odwrócone w twojej głowie. – blueman
@blueman: następnie podklasuj klasę kolejki i nadpisaj metody, aby odwrócić priorytet dla ciebie. –