2017-05-19 2 views
1

Warum passiert das es, wenn ich einen Teil einer Zeichenkette (einen Brief tatsächlich in dem Fall) im zweiten Fall ändert sich nichtsIch bin durch die String-Methode verwirrt .replace

in> #first case 
in>print('Hello, World!'.replace('l','L')) 

out>HeLLo, WorLd! 

#second case 
a = 'Hello, World!' 
a.replace('l','L') 
print(a) 

out>Hello, World! 
+2

Weil 'replace' die vorhandene Zeichenfolge nicht ändert. Es erstellt eine neue Version der Zeichenfolge und gibt sie zurück. – JCVanHamme

+2

Es ist wichtig zu verstehen, dass Python-Strings unveränderlich sind. – polku

+0

dies zu tun a.replace ('l', 'L') hat keinen Einfluss auf Ihre Zeichenfolge 'a', genau wie Toto sagte, Sie müssen es wieder zu Ihrer Variablen zuweisen, oder zu einer anderen Variablen. – berthos

Antwort

5

ersetzen Sie haben das Ergebnis zuweisen der auf die Variable ersetzen:

a = 'Hello, World!' 
a = a.replace('l','L') 
print(a) 
1

Documentation:

Return eine Kopie von String s mit allen Vorkommen von substri ng alt ersetzt durch neu. Wenn das optionale Argument maxreplace angegeben wird, werden die ersten maxreplace-Vorkommen ersetzt.

Da @Toto bereits erwähnt wurde, müssen Sie den Wert zurückgeben.

Verwandte Themen