删除字符串中除最后一个逗号 python 之外的所有逗号

Remove every comma in string except last one with python

我有那些字符串

s1 = "1,395,54"
s2 = "1,5,6,75"

我希望除最后一个逗号外的所有逗号都获得以下字符串:

s1 = "1395,54"
s2 = "156,75"

解决这个简单问题的最有效方法是什么?

这是 str.replace 的解决方案。 replace 函数接受第三个参数,该参数指定 要替换的最大出现次数 。因此,您可以传递一个比 , 在字符串 (your_string.count(",") - 1).

中出现的次数少一的数字
>>> s1 = "1,395,54"
>>> s1.replace(",", "", s1.count(",") - 1)
'1395,54'
>>> s2 = "1,5,6,75"
>>> s2.replace(",", "", s2.count(",") - 1)
'156,75'

您可以拆分并重新加入 f-strings -

*rest, last = s1.split(',')
f'{"".join(rest)},{last}'

您可以将它们组合成一个衬垫 -

''.join(s1.split(',')[:-1]) + "," + s1.split(',')[-1]

您也可以使用一种模式断言右侧有一个逗号,中间只有数字:

import re

s1 = "1,395,54"
s2 = "1,5,6,75"

pattern = r",(?=\d*,)"

print(re.sub(pattern, "", s1))  # 1395,54
print(re.sub(pattern, "", s2))  # 156,75

更广泛的变体接受除逗号之外的任何字符:

,(?=[^,]*,)