2011-08-02 171 views
4

這兩個語句在Python中意味着什麼?Python中的詞典

distances[(clust[i].id,clust[j].id)]=distance(clust[i].vec,clust[j].vec) 

d=distances[(clust[i].id,clust[j].id)] 

我猜測第一個語句將距離clust[i].idclust[j].id鍵映射到distance(..)函數的結果。然而,我很困惑,因爲在Python中使用[]和使用{}的字典表示列表。什麼是正確的答案?

+0

「但是,我很困惑,因爲列表使用Python中的[]和詞典使用{}來表示。」什麼? '[]'用於獲取項目,不代表列表。是什麼讓你覺得它與列表有什麼關係? –

+0

另外請注意,任何[任何[(a,b)]'都可以寫成任何[a,b],就像你可以在z中使用x,y,y和z中的x一樣。 '不需要括號。 –

+0

@S。洛特。這是你幫助那些對你的特定編程語言有較少事實認識的人的方式嗎? – Dhruv

回答

4
distances[(clust[i].id,clust[j].id)]=distance(clust[i].vec,clust[j].vec) 

distances是一本字典,其中元組的可能整數是通過它們之間的測量距離功能distance。 在第二行:

d=distances[(clust[i].id,clust[j].id)] 

d變量只是分配給該距離,訪問剛分配的字典值。 其他答案提供什麼是字典的摘要。

+1

感謝您的解釋! – Dhruv

+0

不客氣。 – BrainStorm

6

詞典文字使用{}。索引操作使用[],無論類型如何。

2

希望這將明確:

>>> a = {} 
>>> a[1] = 2 
>>> a[(1, 2)] = 3 
>>> a 
{(1, 2): 3, 1: 2}