gpt4 book ai didi

python - Python 中是否有针对字典元素的干净测试?

转载 作者:太空狗 更新时间:2023-10-29 20:19:46 26 4
gpt4 key购买 nike

如果我有一个元素,我想从字典中获取:my_dict[i]['level_1']['level_2']['my_var']

有没有比这样做更简洁的方法来检查空值?

if 'level_1' in my_dict[i]:
if 'level_2' in my_dict[i]['level_1']:
if 'my_var' in my_dict[i]['level_1']['level_2']:
my_var = my_dict[i]['level_1']['level_2']['my_var']

最佳答案

您可以简单地定义自己的:

def get_deep(dic,*keys,default=None):
for key in keys:
if isinstance(dic,dict) and key in dic:
dic = dic[key]
else:
return default
return dic

或者如果你想测试:

def in_deep(dic,*keys):
for key in keys:
if isinstance(dic,dict) and key in dic:
dic = dic[key]
else:
return False
return True

您可以将此代码与 in_deep(my_dict[i],'level1','level2','my_var') 一起使用,如果可以,它将返回 True确实在字典中有那么深的含义。如果你想获得那么深的元素,你可以调用get_deep(my_dict[i],'level1','level2','my_var')get_deep 将返回 default 参数(默认为 None),以防无法到达路径。

关于python - Python 中是否有针对字典元素的干净测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41553686/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com