Seite 1 von 1
Chars in String entfernen
Verfasst: Sonntag 31. Mai 2009, 13:20
von Caldar
Ich habe einen String, der folgendermaßen aussieht:
"test (x)", "test(y)", test(z),",
Die Anführungszeichen müssen ja escaped werden, daher machte ich folgendes daraus:
Ich will nun folgendes machen:
1. die Anführungszeichen loswerden. Probiert habe ich
Ausgabe:
"test (x)", "test(y)", "test(z)"
Hat sich also nichts geändert.
Das andere Problem ist, dass ich das letzte Komma im String entfernen will (und nur dieses).
Kann mir jemand mit dem Problem weiterhelfen?
Verfasst: Sonntag 31. Mai 2009, 13:38
von Hyperion
Also bei mir geht's:
Code: Alles auswählen
In [13]: s = "\"test (x)\", \"test(y)\", \"test(z)\""
In [14]: s.replace('"','')
Out[14]: 'test (x), test(y), test(z)'
In [15]: s.replace("\"","")
Out[15]: 'test (x), test(y), test(z)'
Du könntest den String bei jedem Komma aufsplitten und dann die Teile wieder zusammensetzen, wobei Du dann beim vorletzten das letzte Zeichen (eben das Komma) außen vor lässt.
Verfasst: Sonntag 31. Mai 2009, 13:38
von Caldar
OKay, Problem 1 hat sich erübrigt. Ich war so gescheit und vergaß den Zuweisungsoperator:
also ich schrieb:
statt
Aber Problem 2 mit dem letzten Komma entfernen ist (für mich) immer noch nicht ganz trivial - respektive gelöst
@Hyperion:
Danke erstmal für den Tipp mit dem Komma, werde ich gleich mal dran herummachen...
Verfasst: Sonntag 31. Mai 2009, 13:41
von cofi
Erm es gibt in Python mehrere Arten von Quotationmarks. Wenn du doppelte im String hast, musst du nur einfacher nehmen um den String als String-Literal zu kennzeichnen.
Für Problem 2 sollte `s.rstrip(",")` reichen.
Btw: Die meisten Funktionen aus `string` sind deprecated, da sie auch als String-Methoden existieren (siehe Hyperion).
Verfasst: Sonntag 31. Mai 2009, 13:54
von Caldar
cofi hat geschrieben:Erm es gibt in Python mehrere Arten von Quotationmarks. Wenn du doppelte im String hast, musst du nur einfacher nehmen um den String als String-Literal zu kennzeichnen.
Danke, good to know.
cofi hat geschrieben:Für Problem 2 sollte `s.rstrip(",")` reichen.
Okay, danke, gespeichert
cofi hat geschrieben:Btw: Die meisten Funktionen aus `string` sind deprecated, da sie auch als String-Methoden existieren (siehe Hyperion).
string war bei mir der (etwas unglücklich gewählte) Variablenname für den Beispielstring, also:
Verfasst: Sonntag 31. Mai 2009, 13:57
von Hyperion
cofi hat geschrieben:Für Problem 2 sollte `s.rstrip(",")` reichen.
Klappt bei mir nicht - dabei geht es doch nur um die letzten zeichen eines Strings. Das komma hier befindet sich aber im Innern.
Caldar hat geschrieben:
string war bei mir der (etwas unglücklich gewählte) Variablenname für den Beispielstring, also:
Wobei "str" auch nicht besser ist, überschreibt es doch eine Built-In Funktion

Verfasst: Sonntag 31. Mai 2009, 14:48
von BlackJack
Man könnte das letzte Komme mit der `rindex()`-Methode suchen und dann per "slicing" eine Zeichenkette ohne das Komma basteln.
Verfasst: Sonntag 31. Mai 2009, 18:04
von cofi
Hyperion hat geschrieben:Klappt bei mir nicht - dabei geht es doch nur um die letzten zeichen eines Strings. Das komma hier befindet sich aber im Innern
Hm hast recht, da hab ich mich verlesen. Ich hatte mit letztem Komma ein "trailing" assoziiert

Verfasst: Sonntag 31. Mai 2009, 23:11
von scrippi
das problem ist nich schwer zu lösen wenn du weisst das das komma das lezte zeichen ist
Ausgabe: "abc"
und so kannst du das komma entfernen

Verfasst: Montag 1. Juni 2009, 11:01
von yantur_v_b
scrippi hat geschrieben:das problem ist nich schwer zu lösen wenn du weisst das das komma das lezte zeichen ist
Aber
bekanntlich ist das Komma im Innern.