我正在使用python用string替换代码:
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] )
我不会收到错误,但我会返回一个无值,因为我将结果附加到其他列表中我最终会得到这样的结果:
['blue', None, 'HIGH', 'GREEN', None, 'GREEN']
处理这个问题的正确方法是什么?
答案 0 :(得分:1)
首先测试密钥:
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]