0
我今天早些時候問過這個問題:Evaluating values within a dictionary for different keys引用嵌套詞典鍵和值的字典內涵
我的工作字典的結構發生了變化,我已經嘗試修改我得到以適應解決方案這個。
結構之前是:
locsOne = {1: [100], 2: [200], 3: [250]}
,但現在它已被更改爲:
locsone = {1: [[100]], 2: [[200]], 3: [[250]]}
我嘗試應用在locsOne字典中的haversine公式,拿到鑰匙:價值的到另一個鍵的距離:值,如果它們大於450,則不應將它們包含在結果字典中。
產生的字典應該是這樣的:
locsTwo = {1: {2: 100, 3: 150}, 2: {1: 100, 3: 50}, 3: {1: 150, 2: 50}}
這是我收到的代碼(感謝falsetru):
for k1 in locsOne:
v1 = locsOne[k1][0]
locsTwo[k1] = {k2: abs(v1 - locsOne[k2][0]) for k2 in locsOne
if k1 != k2 and abs(v1 - locsOne[k2][0]) <= 450}
print(locsTwo)
我在修改它返回錯誤,如「IndexError嘗試:列表超出範圍「和」KeyError「。
我最後的修改是:
for k1 in locsOne:
v1 = locsOne[k1][1]
locsTwo[k1] = {k2: harvesineForm(v1 , locsOne[k2][1]) for k2 in locsOne
if k1 != k2 and abs(v1 - locsOne[k2][0]) <= 450}
任何幫助將不勝感激。
如果這些值包含一個座標,例如[-36393612,28623927](就像一個例子),是否有一種方法可以調整您的建議以適應此?我目前正在得到「TypeError:不可用類型:'列表'」。 – 2014-08-31 20:44:08
字典看起來像什麼?'{1:[-1,1]}或'{1:[[-1,1]]}?甚至是「{1:[[-1],[1]]}」?只是爲了確保:當列表包含多個元素時,只會出現錯誤,對嗎? – 2014-08-31 20:48:00
它看起來像這樣:{1:[[ - 6.26373252,54.33636358]],2:[[ - 6.5463247,54.4578952]]} – 2014-08-31 20:52:19