在嵌套字典中查找最大值时出现 KeyError
KeyError when finding for max value in nested dictionary
我有一个这样的嵌套字典:
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
。如果你知道怎么做,请告诉我。
在键入之前验证 'A'
键是否存在于 x
中:
max(float(x['A']) for x in input_dic.values() if 'A' in x)
我有一个这样的嵌套字典:
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
。如果你知道怎么做,请告诉我。
在键入之前验证 'A'
键是否存在于 x
中:
max(float(x['A']) for x in input_dic.values() if 'A' in x)