2016-09-27 2 views
-3

I eine Zeichenkette S haben = 'Spam'ersetzen Methode für Python strings

Wenn ich die Verfahren ersetzen, da S.replace ('pa', 'xx') verwenden

S.replace('pa', 'xx') 

Der Ausgang I get is -

Out[1044]: "sxxm's" 

Warum sind dann die Python-Strings bekannt als unveränderlich?

+4

Wer sagt, dass die String-Objekt 'S' Referenzen selbst verändert wird? Sie haben eine * neue Zeichenfolge * zurück, die Echo wurde. –

+1

Probieren Sie 'T = S.replace ('pa', 'xx')' und Sie werden sehen, dass 'S' danach unverändert ist. [* "Gibt eine Kopie der Zeichenfolge mit allen Vorkommen der Teilzeichenfolge alt durch neue ersetzt zurück." *] (Https://docs.python.org/3/library/stdtypes.html#str.replace) – jonrsharpe

Antwort

1
S = 'spam' 
S.replace('pa', 'xx') 
print S 

Sie die gleiche Zeichenfolge 'spam'

-1

Sie erhalten werden, um den Rückgabewert nicht speichern.

Snew = S.replace('pa', 'xx') 

funktionieren sollte