在嵌套字典中查找最大值时出现KeyError

时间:2019-12-11 02:51:13

标签: python dictionary keyerror

我有一个像这样的嵌套字典:

input_dic = {'GCT': {'A': '2.520'}, 
             'GCC': {'A': '1.294'}, 
             'GCA': {'A': '0.161'}, 
             'GCG': {'A': '0.025'}, 
             'TGT': {'C': '1.422'}, 
             'TGC': {'C': '0.578'}, 
             'GAT': {'D': '0.645'}}

我想提取每个组的最大值,就像'A'2.520,所以我尝试:

max(float(x['A']) for x in input_dic.values())

但是,它说KeyError: 'A'。我认为发生这种情况是因为该密钥不是唯一的,但是我不知道如何解决它。

我尝试了一种新方法来构建像这样的字典

{('A', 'GCT'): '2.520', 
 ('A', 'GCC'): '1.294', 
 ('A', 'GCA'): '0.161', 
 ('A', 'GCG'): '0.025', 
 ('C', 'TGT'): '1.422', 
 ('C', 'TGC'): '0.578', 
 ('D', 'GAT'): '0.645'}

但是我也不知道提取组'A'2.520。请告诉我您是否知道该怎么做。

1 个答案:

答案 0 :(得分:3)

在键入以下命令之前,验证'A'中是否存在x键:

max(float(x['A']) for x in input_dic.values() if 'A' in x)