2016-03-26 14 views
1

Ich versuche, eine Zeichenposition in einer Zeichenfolge zu ersetzen, aber bisher keinen Erfolg. Zum Beispiel fürSuchen und ersetzen Zeichenposition in einer Zeichenfolge

string = 'LOLOLOLO$$' 
replace(string,1) 

Ergebnis, das ich will, ist

'L$$OLOLOOL' 

Mein vorhandener Code:

def replace(string, position): 
    p = int(position) 
    s = []  
    for i,c in enumerate(string): 
     s.append(c) 
     if c == '$': 
      s.insert(p,c) 

    return ''.join(s) 

Antwort

1

Sie sind Anfügen noch die $ Zeichen am Ende Ihres neuen String. Versuchen Sie folgendes:

... 
if c == '$': 
    s.insert(p,c) 
else: 
    s.append(c) 
+0

es wird von "L $ OLOLOLO $$" zu diesem "LLOOLLOOLLOOLLOO $$$$" – Reboot

+0

@NathanDrake Funktioniert gut für mich. Stellen Sie sicher, dass Sie die erste 's.append (c)' Zeile entfernt und in den 'else' Block verschoben haben. – Selcuk

+0

Code sieht jetzt wirklich gut aus, aber es gibt wenig Problem. Ergebnis Ich will ist 'L $$ OLOLOOL', aber ich bekomme 'L $ OLOLOLO' – Reboot

1

Wenn ich Ihre Frage richtig verstanden habe, das Sie einfügen möchten '$$' an Position 1 und entfernen Sie den alten Vorkommen:

def replace(src, newpos, what="$$"): 
    src=src.replace(what, "") #removes ALL occurences of what 
    return src[:newpos]+what+src[newpos:] 

, dass Sie das Ergebnis liefert:

s="LOLOLO$$" 
result=replace(s, 1) 
print(result) #result is "L$$OLOLO" 
+0

Dank @ MrP01, aber ich nehme nur zwei Argumente in meinem Code – Reboot

+0

Es dauert jetzt nur zwei Argumente Aber ich verstehe immer noch nicht, was du willst. Bitte erläutern. – MrP01

Verwandte Themen