2016-05-17 16 views
0

ich Python bin mit mit String-Codes ersetzt:KeyError während Mapping-Werte mit Python Wörterbücher

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

ich mit diesen Codes eine Liste der Liste haben:

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

Wenn dieser Fall zum Beispiel der Code in der dritten Liste wird im Wörterbuch nicht definiert, so dass, wenn ich versuche:

decoding_dict[ codes_list[2][0] ] 

ich werde einbekommenAusnahme, wenn statt, dass ich verwenden:

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

würde ich nicht einen Fehler, aber ich werde einen keinen Wertes zurück, da ich die Ergebnisse in anderer Liste bin anhängen ich so etwas wie dies am Ende mit:

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

Was ist der richtige Weg, um dieses Problem zu behandeln?

Antwort

1

-Test für den Schlüssel zuerst:

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

Sie Ihre Ausgabe mit einer Liste Verständnis mit diesem Filter erzeugen konnte:

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