2016-09-28 228 views
-4

問題:
我試圖實現距離矢量路由協議,我需要跟蹤節點/路由器(A,B,C)的距離以及距其鄰居(1,2,3)的距離並更新如果其中一個路由器通過處理和發送更新的距離向量來了解來自其鄰居的另一條最佳路徑,則爲最佳路徑(源路由器到目標路由器)。這裏en.wikipedia.org/wiki/Distance-vector_routing_protocolPython字典比較

更多細節我想比較兩個詞典(a & b),如果我發現任何的b(即'B')鍵的存在a那麼我想添加的值的'B'(即1)從a'C'(即2)從b所以輸出類似於以下:

a = {'A': {'B': 1}} 

b = {'B': {'C': 2}} 

最終輸出:

a = {'A': {'B': 1, 'C': 3}} 
+2

這看起來並不像一個有效的字典......有沒有用'{「C」:3}相關聯的密鑰'。 – mgilson

+0

對不起,固定的最終輸出格式。 – Lokesh

+1

我仍然感到困惑...爲什麼它{'C':3}'而不是'{'C':2}'?爲什麼整個事情都嵌在關鍵「A」中? – mgilson

回答

0

這對於字典是不可能的,但對於集合來說是不可能的。例如,

s = {'K':'L', 'L':'K', 'Q':'P'} 
p = {'K':'L', 'Q':'P'} 

# for python 3 
k = s.values() & p.values() # k is now {'L', 'P'} 
# for python 2 
k = s.viewvalues() & p.viewvalues() # is now {'L', 'P'} 

看一套文檔here

+1

字典有可能 –

+0

我需要這種數據結構,因爲我試圖實現距離向量路由協議,我需要跟蹤節點/路由器的距離,如A,B,C等,以及它們與鄰居1,2,3的距離等,並更新最佳路徑(路由器和距離)如果其中一個路由器通過發送和接收距離矢量來了解其鄰居的另一個最佳路徑,請參閱https://en.wikipedia.org/wiki/Distance-vector_routing_protocol。 – Lokesh

+0

@Corgs,我的問題並不複雜,因爲我我正在處理嵌套字典,輸出根據鍵和它們的值而變化。 – Lokesh