我正在尝试编写一个非常简单的函数来递归搜索可能嵌套的(在最极端情况下十层深度)Python字典并返回它从给定键中找到的第一个值.
我无法理解为什么我的代码不适用于嵌套字典.
def _finditem(obj, key):
if key in obj: return obj[key]
for k, v in obj.items():
if isinstance(v,dict):
_finditem(v, key)
print _finditem({"B":{"A":2}},"A")
Run Code Online (Sandbox Code Playgroud)
它回来了None.
然而,它确实可以用于_finditem({"B":1,"A":2},"A")返回2.
我确定这是一个简单的错误,但我找不到它.我觉得在标准库中已经有可能存在这样的东西了collections,但我也找不到.
我刚开始使用python,很快就想知道是否可以使用元组索引嵌套列表.就像是:elements[(1,1)]
我想要做的一个例子类似于下面的代码,我在其中保存矩阵的一些位置,我稍后需要在一个名为index的元组中访问它.
index = ( (0,0), (0,2), (2,0), (2,2) )
elements = [ [ 'a', 'b', 'c'],
[ 'c', 'd', 'e'],
[ 'f', 'g', 'h'] ]
for i in index:
print (elements [ i[0] ] [ i[1] ])
# I would like to do this:
# print(elements[i])
Run Code Online (Sandbox Code Playgroud)
这似乎是一个有用的功能.这有什么办法吗?或者也许是一个简单的选择
我有很多嵌套的词典,我试图找到嵌套在某个地方的某个键.
例如,这把钥匙叫做"水果".如何找到此密钥的值?