我来自Java背景,我需要做类似于这样的事情
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>();
}
}
我有一个类,其中有两个变量:分数和列表。还有一个自然排序的计算。
请问有人能告诉我如何在Python中实现它?heapq对我无效,因为我的得分函数基于两个变量而不是一个。
Queue
中的PriorityQueue
带有额外的负担(它是线程安全的)。如果性能是一个问题,那么我建议为heapq
模块创建一个类包装器。 - Dunes