删除字符串中除最后一个逗号 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
更广泛的变体接受除逗号之外的任何字符:
,(?=[^,]*,)
我有那些字符串
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
更广泛的变体接受除逗号之外的任何字符:
,(?=[^,]*,)