删除Python中嵌套字典键的外部
我有一个python嵌套字典- {a:{d:{v:2,c:3}} 我想写一个函数,得到一个像“a”这样的键 并返回字典: {d:{v:2,c:3} 就在里面 我尝试使用:删除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,
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],尽管这似乎是一个不必要的步骤。