要查找多層嵌套字典的值,可以使用遞歸方法。下面是一個(gè)示例代碼:
def find_value(nested_dict, keys):
if len(keys) == 1:
return nested_dict.get(keys[0])
else:
key = keys[0]
if key in nested_dict:
return find_value(nested_dict[key], keys[1:])
else:
return None
# 示例字典
example_dict = {
'a': {
'b': {
'c': 123
}
}
}
# 查找值
keys = ['a', 'b', 'c']
value = find_value(example_dict, keys)
print(value) # 輸出: 123
在這個(gè)示例中,find_value
函數(shù)接受兩個(gè)參數(shù):nested_dict
表示嵌套字典,keys
表示要查找的鍵的列表。函數(shù)首先判斷keys
列表的長(zhǎng)度,如果只有一個(gè)元素,則直接返回對(duì)應(yīng)的值。如果keys
列表的長(zhǎng)度大于1,則取第一個(gè)鍵作為當(dāng)前層級(jí)的鍵,并在nested_dict
中查找該鍵對(duì)應(yīng)的值。如果鍵存在,將遞歸調(diào)用find_value
函數(shù)來(lái)繼續(xù)查找下一層級(jí)的值;如果鍵不存在,返回None
表示未找到。
使用示例字典example_dict
和要查找的鍵['a', 'b', 'c']
調(diào)用find_value
函數(shù),將返回值123。