从嵌套字典中筛选和读取值和键可以使用递归的方式进行操作。以下是一个示例代码,可以根据提供的键列表从嵌套字典中筛选和读取对应的值:
def get_value_from_nested_dict(nested_dict, keys):
if not keys:
return nested_dict
key = keys[0]
if key in nested_dict:
value = nested_dict[key]
if len(keys) == 1:
return value
if isinstance(value, dict):
return get_value_from_nested_dict(value, keys[1:])
return None
该函数接受两个参数,第一个参数是嵌套字典,第二个参数是键列表。函数首先检查键列表是否为空,若为空,则直接返回整个嵌套字典。接着取出键列表的第一个键,并检查该键是否存在于当前字典中。如果存在,则取出对应的值。若键列表只剩下一个键,则返回该值。如果值是字典类型,则递归调用函数,将该值作为新的嵌套字典继续筛选和读取下一个键。如果不存在任何满足条件的值,或者嵌套字典中出现了不可遍历的非字典类型值,则返回None。
以下是一个示例使用该函数的代码:
nested_dict = {
'a': {
'b': {
'c': 1,
'd': 2
},
'e': 3
},
'f': {
'g': {
'h': 4
}
}
}
keys = ['a', 'b', 'c']
value = get_value_from_nested_dict(nested_dict, keys)
print(value) # 输出 1
keys = ['f', 'g', 'h']
value = get_value_from_nested_dict(nested_dict, keys)
print(value) # 输出 4
keys = ['x', 'y', 'z']
value = get_value_from_nested_dict(nested_dict, keys)
print(value) # 输出 None
在这个示例中,我们定义了一个嵌套字典 nested_dict
,然后通过不同的键列表调用 get_value_from_nested_dict
函数来筛选和读取对应的值。输出结果符合预期。
腾讯云相关产品和产品介绍链接地址:
云+社区技术沙龙[第11期]
云+社区技术沙龙[第20期]
腾讯技术开放日
Elastic 中国开发者大会
云+社区技术沙龙[第5期]
高校公开课
Techo Day
企业创新在线学堂
领取专属 10元无门槛券
手把手带您无忧上云