2016-09-28 186 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