我试图为嵌套字典创建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
答案 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