我希望有一个函数,当给定的键列表指向字典中的现有结构时,返回True。每个键对应于字典的深度级别
我所面临的困难是,列表的长度(=键的数量)和字典的深度都是动态的
#Example Code:
keys1 = ["K1", "K3", "K4"]
keys2 = ["K2", "K6"]
keys3 = ["K1", "K6", "K4"]
dict = {
"K1": {
"K3": {
"K4": "a"
}
},
"K2": {
"K6": "b"
}
}
result = function(keys1, dict) #result should be True
result = function(keys2, dict) #result should be True
result = function(keys3, dict) #result should be False
简单递归方法:
这假设了一个非常统一的结构:所有中间值都是dict本身,深度总是至少是键的长度。否则,您需要处理一些错误:
您可以定义一个遍历字典的递归函数,检查每个级别上是否存在键,如果不存在则返回False,如果键列表为空则返回True。你知道吗
(正如schwobasegll在另一个答案中指出的,您不应该隐藏内置名称
dict
。)这将遍历所有值,并检查所使用的值是否为字典:
一点:不要将变量命名为dict,它与内置类型dict冲突
相关问题 更多 >
编程相关推荐