Python Buchstaben ersetzen - Dictionary?
Hallo zusammen leider bekomme ich folgende Code nicht zum laufen, es soll bloß in diesem Fall für den satz "wann k0mmt" die 4 durch ein a Erstetz werden und die 0 durch ein o ersetzt wird dass also für die if wir dann dastehen haben "wann kommt"
aehnliche = {'a': [4], 'o': [0]}
rueckwaerts = {} # neues dict
for i in aehnliche:
for x in aehnliche[i]: # 11111
rueckwaerts[x] = i
satz = "w4ann kommt"
neuerSatz = ""
for z in satz:
try:
neuerSatz += rueckwaerts[z] # versuche den buchstabe zu ersetzen
except:
neuerSatz += z # falls keiner da, kopieren
# 22222
print(neuerSatz)
if "wann" in neuerSatz and "kommt" in neuerSatz:
print("juhu")
else:
print("hat leider nicht geklappt")
3 Antworten
leider bekomme ich folgende Code nicht zum laufen
Eine präzise Fehlerbeschreibung sieht anders aus. Aber beim Drüberlesen fällt mir auf:
aehnliche = {'a': [4], 'o': [0]}
Wenn Du eine Liste von falschen Zeichen brauchst, darfst Du keine Integer reinschreiben. Kein String enthält die Zahl 4, höchstens den String '4':
aehnliche = {'a': ['4'], 'o': ['0']}
Mehr Fehler habe ich nicht gefunden. Ich finde es nur schräg, dass Du mit [z] auf ein Dictionary zugreifst, obwohl z gar nicht drin sein muss. Dafür gibt es doch die get()-Methode:
for z in satz:
neuerSatz += rueckwaerts.get(z,z) # buchstaben ersetzen oder kopieren
Übrigens ist z in dieser Schleife immer ein einzelner Buchstabe. Eine Ersetzung von 'nn' nach 'n' wirst Du so sicher nie schaffen.
Du kannst zum ersetzen von Buchtstaben auch einfach replace() benutzen:
satz = "w4ann kommt"
neuerSatz = satz.replace("4", "a").replace("0", "o")
print(neuerSatz)# waann kommt
der code hier macht genau das.
wenn du statt der 4 nichts stehen haben willst, kannst du replace("4", "") machen
Du meinst, dass der immer erkennt, dass da "wann" stehen soll?
Da wäre ich dann leider auch überfragt :(
Aber vielleicht kann man das versuchen mit einer Künstlichen Intelligenz zu lösen. Wie das genau geht weiß ich leider nicht.
Wer hat den den misst geschrieben? Ich vielleicht? 😁 (jedenfalls ein Teil davon...)
aehnliche = {'a': ['4'], 'o': ['0']}
wo liegt aber der vorteil von dem dictionary gegenüber von replace?
vielen dank. ich muss das noch weiter ausdenen nur z.b.
Wie mache ich das dann?