2016-09-28 11 views
-4

問題:
私は距離ベクトルルーティングプロトコルを実装しようとしており、ノード/ルータ(A、B、C)の距離とその近隣(1,2,3)からの距離を追跡し、更新する必要がありますルータの1つが、更新された距離ベクトルを処理して送信することによって、隣接ルータからの別の最良の経路について学習する場合は、最良の経路(ソースルータから宛先ルータへ)。ここでは詳細はen.wikipedia.org/wiki/Distance-vector_routing_protocolPython辞書の比較

私は2つの辞書(a & b)を比較しようとしていると私はab(すなわち'B')現在のキーのいずれかを見つけた場合、私はしたいですその出力は次のようになりますbから'C'に中a(すなわち2)から(すなわち1'B'の値を追加するには:

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

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

最終出力:

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

を見...' {3 'C'}に関連付けられたキーはありません。 – 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などからの距離を追跡し、最良の経路(ルータと距離)を更新する必要があります。ルータの1つが距離ベクトルを送受信することによって隣人から別の最良の経路を知っている場合詳細な説明はこちらhttps://en.wikipedia.org/wiki/Distance-vector_routing_protocol – Lokesh

+0

@Corgs、私の問題は少し複雑ですネストされた辞書を扱い、出力はキーとその値に基づいて変化します。 – Lokesh

関連する問題