Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/326.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
删除Python中嵌套字典键的外部_Python_Dictionary - Fatal编程技术网

删除Python中嵌套字典键的外部

删除Python中嵌套字典键的外部,python,dictionary,Python,Dictionary,我有一个python嵌套字典- {a:{d:{v:2,c:3}} 我想写一个函数,得到一个像“a”这样的键 并返回字典: {d:{v:2,c:3} 就在里面 我尝试使用: def findkeys(node, kv): if isinstance(node, list): for i in node: for x in findkeys(i, kv): yield x elif isinstance(node,

我有一个python嵌套字典- {a:{d:{v:2,c:3}} 我想写一个函数,得到一个像“a”这样的键 并返回字典: {d:{v:2,c:3} 就在里面

我尝试使用:

def findkeys(node, kv):
    if isinstance(node, list):
        for i in node:
            for x in findkeys(i, kv):
               yield x
    elif isinstance(node, dict):
        if kv in node:
            yield node[kv]
        for j in node.values():
            for x in findkeys(j, kv):
                yield x
但是它是以列表而不是字典的形式返回的,因此它在列表中只有一个-项
[{d:{v:2,c:3}]
,因此我无法在它之后访问例如键“c”

我的字典里有一棵树,我想穿过它直到找到一片叶子

有人有主意吗

def get_val(dct,key):
    for k, v in dct.iteritems():
        if key in dct.keys():
            print dct[key]
        else :
            for d in dct.values():
                get_val(d, key)

dct = {'a': {'d':{'v':2, 'c':3}}}
key='a'
get_val(dct,key)
如果
key='a'
,则输出=
{'d':{'v':2'c':3}
如果
key='d'
,则输出=
{'c':3,'v':2}

如果
key='a'
,则输出=
{'d':{'v':2'c':3}

如果您已经描述了
key='d'
,output=
{c':3,'v':2}

,那么您
outerdict['a']
将在调用函数后为您提供内部指令您也可以执行列表[0],尽管这似乎是一个不必要的步骤。正如您所描述的,
outerdict['a']
将为您提供内部命令,您也可以在调用函数后执行列表[0],尽管这似乎是一个不必要的步骤。