我使用来自许多来源的元素创建了一些字符串,每次运行程序时元素的数量都会有所不同;我创建了一个我的程序现在创建的示例字符串。 我想在[:-3]中计算以下字符串并删除最后一个逗号:
'{"SEignjExQfumwZRacPNHvq8UcsBjKWPERB":1.00000000,"SCaWymicaunRLAxNSTTRhVxLMAB9PaKBDK":2.80000000,"SGFHTxuRLttUShUjZyFMzs8NgC1JopSUK6":1.20000000,}'
所以我的字符串看起来像:
'{"SEignjExQfumwZRacPNHvq8UcsBjKWPERB":1.00000000,"SCaWymicaunRLAxNSTTRhVxLMAB9PaKBDK":2.80000000,"SGFHTxuRLttUShUjZyFMzs8NgC1JopSUK6":1.20000000}'
我只是不能到那里,帮助赞赏。
答案 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}
这将匹配任何潜在的非','
之前的所有','
。它匹配字符串结尾之前的最后','
。