Python 是否有可能获得孙辈dict密钥';s值,无需迭代
给定一个dict,其中包含n个字典,其中包含n个字典等Python 是否有可能获得孙辈dict密钥';s值,无需迭代,python,xpath,Python,Xpath,给定一个dict,其中包含n个字典,其中包含n个字典等 foo = dict({"foo" : {"bar": {"baz": "some value"}}} 假设baz可以位于foo中的任何位置,但它只会出现一次,是否可以不迭代地查找键“baz”的值?我在想点什么。ie“//baz” 我不认为没有迭代/递归就可以做到这一点 >>> def search(d, baz): ... if baz in d: ... return d[baz] ...
foo = dict({"foo" : {"bar": {"baz": "some value"}}}
假设baz
可以位于foo
中的任何位置,但它只会出现一次,是否可以不迭代地查找键“baz”的值?我在想点什么。ie“//baz”
我不认为没有迭代/递归就可以做到这一点
>>> 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)
谢谢……我知道在某个地方必须进行迭代,但我希望有一些东西可以隐藏起来,比如xpath在etree中提供的东西
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)