gpt4 book ai didi

python - 嵌套字典检查键值

转载 作者:太空宇宙 更新时间:2023-11-04 02:47:50 25 4
gpt4 key购买 nike

我有一个嵌套字典,如下所示:(超过 2 个键“lots of lala's”)

d={'lala': {'temp1': 'c', 'comp_b': 'bc', 'temp': 'b', 'comp_a': 'ac'}, 'lala1': {'temp1': 'c1', 'comp_b': 'bc1', 'temp': 'b1', 'comp_a': ''}

对于“a”中的所有父键,我需要检查键(comp_a 和 comp_b)是否具有有效值。在这种情况下,“lala1”的“comp_a”没有值。所以我需要我的函数只返回“lala”作为输出。

要检查的父键=> a= ['lala','lala1']

键的必需值=> compulsory= ['comp_b','comp_a']

这是我目前所拥有的:

def check_args(a,d):
compulsory=['comp_b','comp_a']
valid=[]
for a in d:
for elements in compulsory:
try:
if d.get(a,{}).get(elements) !='':
print "Valid"
except:
break
else:
print "Can't parse details of " + a + " as mandatory data missing "
continue

问题: 如何返回有效的父键,即“lala”? 有没有更好的方法来完成我目前所做的事情?

最佳答案

这是一个没有 try except 的干净方法

d={'lala': {'temp1': 'c', 'comp_b': 'bc', 'temp': 'b', 'comp_a': 'ac'}, 'lala1': {'temp1': 'c1', 'comp_b': 'bc1', 'temp': 'b1', 'comp_a': ''}}

compulsory= ['comp_b','comp_a']

ok_keys = [k for k,v in d.iteritems() if all([c in v and v[c]!='' for c in compulsory])]
ok_keys #<-- prints ['lala']

逻辑全部发生在列表理解中,它首先循环遍历 d 中的键,并测试所有强制键是否都在 d[k] 中,并且d[k][c] 值不为空。

关于python - 嵌套字典检查键值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44641850/

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