簡體   English   中英

如何使用單個鍵訪問嵌套字典中的值?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM