2016-07-13 62 views
1

我想弄清楚什麼順序PriorityQueue.get()在Python中返回值。首先,我認爲較小的優先級值首先返回,但在幾個例子之後它不是這樣。這是我運行的示例:Python的PriorityQueue命令

>>> qe = PriorityQueue() 
>>> qe.put("Br", 0) 
>>> qe.put("Sh", 0.54743812441605) 
>>> qe.put("Gl", 1.1008112004388) 

>>> qe.get() 
'Br' 
>>> qe.get() 
'Gl' 
>>> qe.get() 
'Sh' 

爲什麼它按此順序返回值?

回答

1

根據doc,第一個參數是優先級,第二個是值。所以這就是爲什麼你會得到這樣的結果。

條目的典型模式是以下形式的元組:(priority_number,data)。

所以,你應該傳遞一個元組把這樣的:

>>> q = PriorityQueue() 
>>> q.put((10,'ten')) 
>>> q.put((1,'one')) 
>>> q.put((5,'five')) 
>>> q.get() 
>>> (1, 'one') 
>>> q.get() 
>>> (5, 'five') 
>>> q.get() 
>>> (10, 'ten') 

通知額外支撐。

+0

但是,如果我這樣做(priority_number,數據)然後.get()返回priority_number,我希望它返回數據 – user897234

+0

我做了答案的更新。 – valignatev