Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在另一个dict中合并具有相同键的python dict_Python_Python 3.x_Dictionary - Fatal编程技术网

在另一个dict中合并具有相同键的python dict

在另一个dict中合并具有相同键的python dict,python,python-3.x,dictionary,Python,Python 3.x,Dictionary,例如:别名、速度、双工: Alias、Speed、Duplex是格式为{key:val}的DICT,但在某些情况下Alias、Speed或Duplex可能为空 所以我的问题是,如果我使用: dd = defaultdict(list) for d in (Alias, Speed, Duplex): for key, value in d.items(): dd[key].append(value) 我将得到一个带有{k

例如:别名、速度、双工:

Alias、Speed、Duplex是格式为{key:val}的DICT,但在某些情况下Alias、Speed或Duplex可能为空

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

 dd = defaultdict(list)
        for d in (Alias, Speed, Duplex):
            for key, value in d.items():
                dd[key].append(value)
我将得到一个带有
{key:[aliasVal,speedVal,duplexVal]}
的结果,但正如我已经告诉您的那样,如果Alias为null,我将得到
{key:[speedVal,duplexVal]}

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

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

现在我们知道了密钥和值,如果它们存在的话

首先我想感谢您的帮助,但我用

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)

“空”是指
None
?因为在这种情况下,您将得到一个
AttributeError
。还是一本空字典
{}
?你说你想要一本字典而不是一个列表,那么你打算在哪里实现呢?更改
dd
的定义以适应这一点很简单,为什么不从这里开始呢?不要只是断言你的问题不是重复的,这对任何人都没有用——展示你的研究,你读了什么,你认为别人会考虑重复,以及他们是如何精确地回答你的问题?