2017-10-18 27 views
-3

实施例相同的键:别名,速度,双工:合并蟒http://stardict.sourceforge.net/Dictionaries.php下载与另一字典

别名,速度,双工与形式类型的字典{键:VAL},但在某些情况下,别名或速度或双工可以是空

所以我的问题是,如果我使用:

dd = defaultdict(list) 
     for d in (Alias, Speed, Duplex): 
      for key, value in d.items(): 
       dd[key].append(value) 

我将有一个结果,与{key: [aliasVal, speedVal, duplexVal]}但我已经告诉你,如果别名为null,我将有{key: [speedVal, duplexVal]}

所以我需要用字典替换列表。最终的结果应该是:

{key: {"aliasVal": aliasVal, "speedVal": speedVal, "duplexVal": duplexVal }} 

现在我们知道键和值,如果那些存在

+2

通过“空”你的意思是“没有”?因为在那种情况下你会得到一个'AttributeError'。或者一个空字典'{}'?你说你想要一个字典而不是一个列表,那么你试图实现它的地方在哪里?为了适应这种情况,改变“dd”的定义会很简单,为什么不从那里开始呢?不要断言你的问题不是重复的,对任何人都没有用 - 展示你的研究成果,你读了什么,你认为别人会认为重复,他们究竟如何不能回答你的问题? – jonrsharpe

+0

发布样本输入和输出,它混淆了你实际询问的内容。 –

回答

0

首先我要感谢你的帮助,但我解决了这个与

dd = defaultdict(dict) 
    for d in (Alias, Descr, Speed, Duplex, adminState, opState): 
     for key, value in d.items(): 
      dd[key].update(value) 

    for elem in dd: 
     """ If key doesn't exists i will create a new format key: None for db 
     """ 
     descr = dd[elem].get("Descr", None) 
     alias = dd[elem].get("Alias", None) 
     speed = dd[elem].get("Speed", None) 
     duplex = dd[elem].get("Duplex", None)