有没有可能在不迭代的情况下获取孙子dict键的值

2024-10-04 01:29:21 发布

您现在位置:Python中文网/ 问答频道 /正文

给定一个dict,what包含n个字典,what包含n个字典等

foo = dict({"foo" : {"bar": {"baz": "some value"}}}

假设baz可能在foo中的任何地方,但它只会出现一次,是否可以不迭代地找到键“baz”的值?我在想些事情。即".//baz"

if "baz" in foo: 
    bazVal = dict[path][to][baz] 

Tags: topathinif字典foovalue地方
3条回答

我认为没有迭代/递归你是做不到的。你知道吗

>>> def search(d, baz):
...     if baz in d:
...         return d[baz]
...     for value in d.values():
...         if isinstance(value, dict):
...             ret = search(value, baz)
...             if ret:
...                 return ret
...
>>>
>>> foo = {"foo" : {"bar": {"baz": "some value"}}}
>>> search(foo, 'baz')
'some value'
>>> search(foo, 'spam')
>>>

使用标准字典,而不是迭代?没有

不迭代,不确定。使用,可以使用以下选项:

 d = dict({"foo" : {"bar": {"baz": "some value"}}})
 def myprint(d):
   for i in d.iteritems():
     if isinstance(i, dict):
       myprint(i)
     else:
       print i

 myprint(d)

相关问题 更多 >