嵌套字典上的For循环

时间:2020-11-04 07:00:17

标签: python dictionary for-loop

我试图为嵌套字典创建for循环,但是它们无法正常工作。 我的嵌套字典看起来像这样:

mydict = {'a':{'alpha': 2, 'Beta': 6, 'Gamma': 10}, 
        'b' : {'Beta' : 3 , 'Delta': 7, 'Epsilon' : 5}, 
        'c' : {'Epsilon': 4 , 'Zeta' : 1, 'alpha' : 6}}

我要做的是定义一个函数,该函数获取字典和单词作为参数。它通过内部词典中的关键字搜索单词。如果它在内部字典的键中找到了该单词,它将获取其值并将其分配给外部字典的键并返回一个新的字典。在此示例中,如果我们搜索alpha,结果将是这样的:

dict_alpha = {'a': 2,'b' : 0,'c' : 6} 

无效的代码如下:

def counter_finding(corpus, word):
dict_2= {}
for k_1, v_1 in corpus.items():
    for k_2, v_2 in v_1.items():
        if word in key:
            dict_2[k_1] = country_value[v_2]
        else:
            dict_2[k_1] = 0
return dict_2

2 个答案:

答案 0 :(得分:2)

使用简单的迭代和dict.get

例如:

d = {'a':{'alpha': 2, 'Beta': 6, 'Gamma': 10},
        'b' : {'Beta' : 3 , 'Delta': 7, 'Epsilon' : 5}, 
        'c' : {'Epsilon': 4 , 'Zeta' : 1, 'alpha' : 6}}

key = 'alpha'
res = {}
for k, v in d.items():
    res[k] = v.get(key, 0)    # .get() with default value 0
print(res)

输出:

{'a': 2, 'b': 0, 'c': 6}

答案 1 :(得分:0)

def counter_finding(dict1, word):
    dict_2= {}
    for k_1, v_1 in dict1.items():
        print (k_1,v_1)
        if word in v_1:
                dict_2[k_1] = v_1[word]
        else:dict_2[k_1] = 0
    return dict_2