0
我從Java的背景,我需要這樣的如何在python中實現一個自定義類的優先級隊列?
public class Item implements Comparable<Item> {
int score;
ArrayList<Integer> arr;
@Override
public int compareTo(Item o2) {
return score != o2.score ? score - o2.score : arr.size() - o2.arr.size();
}
public static void main(String[] args) {
PriorityQueue<Item> p = new PriorityQueue<Item>();
}
}
所以我有兩個變量,評分和列表的一類。對於自然排序也有計算。
請問有人請告訴我如何做到這一點蟒蛇? heapq不適用於我,因爲我的分數函數根據兩個變量而不是一個來檢查分數。
但是,如果我的數據是在元組的形式,我不能處理與comareTo上面不同的tite break? – Dude
@Dude看看編輯。告訴我你是否錯過了一些東西。 –
'Queue'中的'PriorityQueue'附帶額外的行李(它是線程安全的)。如果性能是一個問題,那麼我建議爲['heapq'](https://docs.python.org/3/library/heapq.html)模塊創建一個類封裝器。 – Dunes