ich habe folgenden String:
Code: Alles auswählen
string = "100m"
Code: Alles auswählen
nummern = {"m":10000}
Code: Alles auswählen
nummer_liste = [nummern.get(x, int(x)) for x in string]
Jetzt verstehe ich nicht genau, wieso das so ist. Die Logik ist doch bei der get-Methode, dass er zuerst schaut, ob der Buchstabe im Wörterbuch drin ist, und wenn ja, er das dann ersetzt. Wenn nicht, soll er nur den Buchstaben in ein Integer wandeln. Aber bei dem „m“ scheint er gar nicht erst im Wörterbuch nachzuschauen, bzw. es nicht zu finden.ValueError: invalid literal for int() with base 10: 'm'
Wenn ich nur
Code: Alles auswählen
nummer_liste = [nummern.get(x) for x in string]
Code: Alles auswählen
nummer_liste = [nummern.get(x, x) for x in string]
Wenn ich das gleiche wie in der oben verlinkten Webseite eintrage, dann funktioniert es allerdings. Wo ist denn da jetzt mein Unterschied? Kann mir da jemand helfen?
Danke