2016-05-17 7 views
0

私は文字列でコードを置き換えるためにパイソンを使用しています:KeyError例外ながら、Pythonの辞書とのマッピング値

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

その場合例えばもし:

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

私はこれらのコードを持つリストのリストを持っています私がしようとするので、3番目のリスト内のコードは、辞書に定義されていません。

decoding_dict[ codes_list[2][0] ] 

私はを取得します

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

私はエラーを取得しないだろうが、私はこのような何かを持って終了他のリストに結果を追加していますので、私は、どれも値を返します。その代わりに、私が使用している場合例外:

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

この問題を処理する正しい方法は何ですか?最初のキーのための

答えて

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] 
関連する問題