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