2017-01-23 168 views
0

我有一些字符串是由來自多個源的元素創建的,每次程序運行時元素的數量都會有所不同;我創建了一個我的程序現在創建的示例字符串。 我想在數[:-3]以下字符串,刪除最後一個逗號:python字符串,刪除字符,從右邊開始計數

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

所以我的字符串看起來像:

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

我只是不能完全得到那裏,幫助表示讚賞。

+0

s.replace(「,」,「」) –

回答

2

要刪除字符串中的倒數第三個字符,你可以使用:

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

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

當你看到答案時,它很容易,謝謝! – Scalextrix

0

您可以rfind試圖找到最後一個逗號

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

你,

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

我會使用rsplit來分割子字符串的最右側(限制爲兩個結果)和th設有帶一個空字符串

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

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

在括號中你可以明顯地使用不同的說法加入他們,我只是想表明,你可以使用你想要的任何表情。

0

使用正則表達式:

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

這將在任何潛在的不','之前匹配','所有。它匹配在字符串結尾之前的最後一個','