ubuntuusers.de

[Python] Probleme mir String-Replace

Status: Gelöst | Ubuntu-Version: Xubuntu 9.10 (Karmic Koala)
Antworten |

freebirth_one

Avatar von freebirth_one

Anmeldungsdatum:
19. Juli 2007

Beiträge: 5051

Wohnort: Mönchengladbach

Mahlzeit auch ☺

Ich arbeite mich gerade inPython ein, und so bin ich dann auch mal auf eine kleine ungereimtheit gestoßen.

Innerhalb eines Strings kann ich ja mittels replace(a, b) den Ssubstring a durch den substring b ersetzen, sehe ich das richtig?

Falls ja, warum funktioniert folgender Code nicht:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
#!/usr/bin/env python
# -*- coding: utf-8 -*-




def main():
	stringliste = []
	for all in range(2):
		eingabe = raw_input("bitte einen String eingeben: ")
		stringliste.append(eingabe)

	for string in stringliste:
		string.replace('a', 'e')
		print string
		
	return 0

if __name__ == '__main__':
	main()

Ausgabe:

smu@smu-samsung:~/projects/fibonacci$ python Aufgabe\ 5.py 
bitte einen String eingeben: hallo
bitte einen String eingeben: welt
hallo
welt
smu@smu-samsung:~/projects/fibonacci$ 

Falls nein: was sehe ich falsch?

nbkr

Avatar von nbkr

Anmeldungsdatum:
29. Oktober 2007

Beiträge: 1936

Wohnort: Aschaffenburg

Soweit ich weiß liefert replace einen neuen String zurück. Wenn also so

print string.replace('a', 'e')

statt der beiden Zeilen 14 und 15.

freebirth_one

(Themenstarter)
Avatar von freebirth_one

Anmeldungsdatum:
19. Juli 2007

Beiträge: 5051

Wohnort: Mönchengladbach

oder so:

string =  string.replace('a', 'e')

Oh man, ich hab den strand vor lauter sand nicht mehr gesehen.

Danke!

snafu1

Avatar von snafu1

Anmeldungsdatum:
5. September 2007

Beiträge: 2133

Wohnort: Gelsenkirchen

Immer merken: Strings sind in Python unveränderlich. In solchen Fällen ändert sich nie der String in-place, sondern man bekommt immer eine Kopie zurück. Du kannst z.B. auch nicht direkt im String den ersten Buchstaben verändern, wie das mit den char-Arrays in C ginge, sondern du musst es halt neu zusammen fügen.

Antworten |