2017-01-23 8 views
0

Ich habe einige Strings, die ich mit Elementen aus vielen Quellen erstellt habe, Anzahl der Elemente wird jedes Mal variieren, wenn das Programm ausgeführt wird; Ich habe eine Beispielzeichenfolge erstellt, die mein Programm jetzt erstellt. Ich mag zählen [: -3] für die folgende Zeichenfolge und löschen Sie das letzte Komma:python string, lösche Zeichen, Zählung von rechts

'{"SEignjExQfumwZRacPNHvq8UcsBjKWPERB":1.00000000,"SCaWymicaunRLAxNSTTRhVxLMAB9PaKBDK":2.80000000,"SGFHTxuRLttUShUjZyFMzs8NgC1JopSUK6":1.20000000,}' 

So sieht mein String wie:

'{"SEignjExQfumwZRacPNHvq8UcsBjKWPERB":1.00000000,"SCaWymicaunRLAxNSTTRhVxLMAB9PaKBDK":2.80000000,"SGFHTxuRLttUShUjZyFMzs8NgC1JopSUK6":1.20000000}' 

ich ganz einfach nicht dorthin gelangen, geschätzt helfen .

+0

s.replace (",", "") –

Antwort

2

Um die dritte letzte Zeichen aus dem String entfernen Sie verwenden können:

string[:-3] + string[-2:] 

>>> string = "hellothere" 
>>> string[:-3] + string[-2:] 
'hellothre' 
+0

es ist so einfach, wenn Sie die Antwort sehen, danke! – Scalextrix

0

können Sie mit rfind versuchen, das letzte Komma

s = '{"SEignjExQfumwZRacPNHvq8UcsBjKWPERB":1.00000000,"SCaWymicaunRLAxNSTTRhVxLMAB9PaKBDK":2.80000000,"SGFHTxuRLttUShUjZyFMzs8NgC1JopSUK6":1.20000000,}' 
idx = s.rfind(",") 
s[:idx]+s[idx+1:] 

Sie bekommen zu finden,

'{"SEignjExQfumwZRacPNHvq8UcsBjKWPERB":1.00000000,"SCaWymicaunRLAxNSTTRhVxLMAB9PaKBDK":2.80000000,"SGFHTxuRLttUShUjZyFMzs8NgC1JopSUK6":1.20000000}' 
1

Ich würde rsplit verwenden, um auf der rechten Seite das Auftreten einer Teilzeichenfolge (Begrenzung auf zwei Ergebnisse) und th zu teilen en sie mit einem leeren String verbinden

''.join(s.rsplit(',', 2)) 
1
a = '{"SEignjExQfumwZRacPNHvq8UcsBjKWPERB":1.00000000,"SCaWymicaunRLAxNSTTRhVxLMAB9PaKBDK":2.80000000,"SGFHTxuRLttUShUjZyFMzs8NgC1JopSUK6":1.20000000,}' 

a[:len(a) - 2] + a[len(a) - 1:] 

Sie offensichtlich verschiedene Ausdrücke in den Klammern verwenden könnte, ich wollte nur zeigen, dass Sie alle Ausdrücke verwenden, könnten Sie wollten.

0

Mit regex:

>>> print re.sub(r ",(?=[^.]*$)", r '', s) 
{"SEignjExQfumwZRacPNHvq8UcsBjKWPERB":1.00000000,"SCaWymicaunRLAxNSTTRhVxLMAB9PaKBDK":2.80000000,"SGFHTxuRLttUShUjZyFMzs8NgC1JopSUK6":1.20000000} 

Dies wird NICHT ',' ein ',' alle vor einem beliebigen Potential entspricht. Es entspricht der letzten ',' direkt vor dem Ende einer Zeichenfolge.

Verwandte Themen