2016-07-26 58 views
0

我試圖找到2 kd樹之間的最短距離,並使用scipy函數'sparse_distance_matrix'。結果將返回到形式爲{(1,2):4.54}的鍵矩陣字典中。我如何找到鑰匙的scipy字典中的最小值和密鑰?

其可能使用下面的代碼來獲取價值,但沒有一種方法似乎工作,以獲得關鍵的價值,因爲它的元組的形式

sparsemin = sp.KDTree.sparse_distance_matrix(aKD,bKD,20) 
m = min(sparsemin.itervalues()) 
+0

最高票數的答案建議重複,http://stackoverflow.com/questions/3282823/get-key-with-the-least-value-from-a-dictionary,在這裏不起作用。這是一個'sparse.dok'矩陣;這是字典的一個子類。它有自己的'get'方法。 – hpaulj

回答

1

min(sparsemin.items(), key=lambda item: (item[1], item[0]))會返回一個元組與最小值及其關鍵。

a = {(1,2): 2.54, (1, 0): 4.52} 
min(a.items(), key=lambda item: (item[1], item[0])) 
>> ((1, 2), 2.54) 
+0

或者稍微簡單些,'min(a,key = a.get)'。 (它只會返回關鍵字,獲得給定關鍵字的值將作爲練習留給讀者。) –

+0

這個'a.get'是假定重複的最佳答案:http://stackoverflow.com/questions/ 3282823 /讓琴鍵與最最少值從-A-字典。它適用於這種情況,但不在這裏。 IndexError:索引必須是一對整數。 – hpaulj

+0

這是一個稀疏的'dok'字典;作爲常規字典的子類實現。 – hpaulj

相關問題