如何遍历嵌套字典并检查列表中是否存在键

时间:2019-07-06 09:59:58

标签: python-3.x dictionary

我有一个清单和一本字典。 我需要从列表中选择值,然后在字典中查找并获取该键的值。如果该键在字典中存在,则返回键的值

input_key= ['d0_f1','d1_f1','d1_f2','d3_f1']


dict = { 
                      "d0" : 
                     {
                       "d0_f1":"d0_v1",
                       "d3_f1" :"d3_v1"
                     },
                     "d1" : 
                     {
                       "d1_f1":"d1_v1",
                       "d1_f2" :"d1_v2"
                     }
            }

for key in input_key:
    key_value = key    
    for key in dict:
        if key == key_value:
        value1 = dict[key]
        print(value1)

2 个答案:

答案 0 :(得分:0)

警告:

  

请勿将bult-in函数用作变量。

dict -- NO NO!

检查此

>>> for i in input_key:
        for k in dict1.keys():
            if i in dict1[k].keys():
                print(dict1[k][i])

输出:

d0_v1
d1_v1
d1_v2
d3_v1

答案 1 :(得分:0)

如@ shaik-moeed所述,请勿将dict用作变量名。我称它为d。如果d大而输入列表长,那么每次循环遍历字典都是很痛苦的。取而代之,我们可以建立一个仅包含键值的新字典。这样就很容易查询输入键了。

d2 =  {}
for sub_dict in d.values():
    d2.update(sub_dict)

现在只需向d2查询input_key

for ik in input_key:
    if ik in d2:
        print(d2[ik])