1

次の Java PriorityQueue を Python でどのように記述しますか?

PriorityQueue<Integer[]> pq = new PriorityQueue<Integer[]>(11,
        new Comparator<Integer[]>() {
          public int compare(Integer[] A, Integer[] B) {
            return A[0] < B[0] ? -1 : 1;
          }
        });

私はどこまでも

from Queue import PriorityQueue
def my_method(self):
  pq = # I got stuck here since I need to include "comparator"

私はCreating a python priority Queueなどの多くの例を見てきましたが、priorty functionまたはcomparator何らかの種類を定義していないようです。

4

1 に答える 1

1

(A.pulp, A)1 つのオプションは、プライオリティ キューに値を入れることです。そうすれば、タプル比較を使用してpulp最初に値を比較します。

別のオプションは、必要な比較を行うためにクラスに実装__cmp__(または定義__lt____eq__て使用) することです。functools.total_orderingこれは、他の比較関数がまだ用意されていないことを前提としています。

于 2013-01-28T23:35:30.243 に答える