【问题标题】:KeyError while mapping values with python dictionaries使用 python 字典映射值时出现 KeyError
【发布时间】:2016-05-17 08:57:17
【问题描述】:

我正在使用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] ) 

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

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

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

【问题讨论】:

    标签: python dictionary keyerror


    【解决方案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]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-27
      相关资源
      最近更新 更多