[英]How can I access value in nested dictionary using a single key?
假設我有一個嵌套字典,它是從 pickle 文件中提取的,包含各種級別,我想通過只給出最后一個鍵來獲取值。 考慮到自己的“分支”,鍵是唯一的。
主要問題是我有多個鍵和級別:
dict = {
'A': {
'X': {
1: [...],
2: [...]
},
'Y': {
3: [...],
4: [...]
}
}
'B': {
'G': {
'H': {
'Z': [...]
}
}
}
'C': [...]
}
我怎樣才能做到這一點?
一個簡單的解決方案是一個 recursive function 甚至適用於嵌套的嵌套字典
outer_dict = {'outer': {'inner': 10, 'even_inner': {'innerst': 25}}}
和 function:
def get_val(search_dict, key):
""" recursive searching the dict """
for elem in search_dict:
if elem == key:
return search_dict[elem]
if isinstance(search_dict[elem], dict):
retval = get_val(search_dict[elem], key)
if retval is not None:
return retval
value = get_val(outer_dict, 'innerst')
print(value)
>> 25
問題:如果密鑰不是唯一的,您將只獲得第一個匹配項。 如果鍵可以多次出現,您將需要一個列表來填充值。
下次請舉個例子!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.