有一本字典。这些键与示例中的不同。字典中的含义要么是字典,要么是文本。
有必要在单独的列表中收集从根到具有文本值的键的键分支。带有键的列表也需要收集到最终列表中。
我看到了一个使用递归的实现。我理解,使用班级检查功能是必要的。但我不明白具体怎么做。
以下是我想做的事情:
dict1 = {'1':{'2':{'3':'text'},'4':{'5':{'6':'text'},'7':'text'}},'8':{'9':{'10':'text'}}}
general_list = []
def search_keys(dict1, list_key=[]):
for key, value in dict1.items():
list_key.append(key)
if isinstance(value, dict):
search_keys(value, list_key)
elif isinstance(value, str):
general_list.append(list_key.copy())
list_key.clear()
return general_list
print(search_keys(dict1))
第一遍收集钥匙。从第二个开始,一切都出错了:
[['1','2','3'],['4','5','6'],['7'],['8','9','10']]
您应该获得以下内容:
[['1','2','3'],['1','4','5','6'],['1','4','7'],['8','9','10']]