python字符串,删除字符,从右边开始计数

时间:2017-01-23 14:23:36

标签: python

我使用来自许多来源的元素创建了一些字符串,每次运行程序时元素的数量都会有所不同;我创建了一个我的程序现在创建的示例字符串。 我想在[:-3]中计算以下字符串并删除最后一个逗号:

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

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

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

我只是不能到那里,帮助赞赏。

5 个答案:

答案 0 :(得分:2)

要删除您可以使用的字符串中的第三个最后一个字符:

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

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

答案 1 :(得分:1)

我会使用rsplit来分割最右边的子串(限制为两个结果),然后用空字符串连接它们

''.join(s.rsplit(',', 2))

答案 2 :(得分:1)

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

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

你可以在括号中使用不同的表达式,我只想表明你可以使用你想要的任何表达式。

答案 3 :(得分: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}'

答案 4 :(得分:0)

使用正则表达式:

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

这将匹配任何潜在的非','之前的所有','。它匹配字符串结尾之前的最后','