使用 python 字典映射值时出现 KeyError

KeyError while mapping values with python dictionaries

我正在使用 python 将代码替换为字符串:

decoding_dict = {'A1A': 'blue', 'ZA3': 'GREEN', 'M9': 'HIGH'}

我有一个包含这些代码的列表:

codes_list = [['A1A'], ['ZA3', 'M9'], ['A6A']] 

如果是这种情况,字典中没有定义第三个列表中的代码,那么如果我尝试:

decoding_dict[ codes_list[2][0] ] 

我会得到一个 KeyError 异常,如果我使用:

decoding_dict.get(codes_list[2][0] ) 

我不会得到错误,但我会 return 一个 none 值,因为我将结果附加到其他列表中,我最终得到这样的结果:

['blue', None, 'HIGH', 'GREEN', None, 'GREEN']

处理这个问题的正确方法是什么?

首先测试密钥:

if codes_list[2][0] in decoding_dict:
    # do something with decoding_dict[codes_list[2][0]] 

您可以使用带有该过滤器的列表理解生成输出:

[decoding_dict[v] for sublist in codes_list for v in sublist if v in decoding_dict]