Python字符串中移除奇数出现位置的逗号方法
移除Python字符串中奇数位置逗号的解决办法
方法一:分组拼接法
先把字符串按逗号拆成列表,再每两个元素一组,组内用空格连起来,组和组之间用原格式的,连接,最后拼出结果:
strng = '1.345 , 2.341 , 7.981 , 11.212 , 14.873 , 7.121...' parts = strng.split(',') # 两两分组处理,每组内去掉前后空格后用两个空格连接 groups = [f'{parts[i].strip()} {parts[i+1].strip()}' for i in range(0, len(parts)-1, 2)] # 要是最后剩单个元素,直接加进去 if len(parts) % 2 != 0: groups.append(parts[-1].strip()) # 组之间用原逗号格式连接 result = ' , '.join(groups) print(result)
运行后就能得到目标字符串:1.345 2.341 , 7.981 11.212 , 14.873 7.121...
方法二:正则计数替换法
用re.sub配合自定义函数,给每个匹配到的逗号计数,奇数位置的换成空格,偶数位置的保留原格式:
import re strng = '1.345 , 2.341 , 7.981 , 11.212 , 14.873 , 7.121...' count = 0 def replace_func(match): global count count += 1 # 第1、3、5...次匹配到的逗号替换成两个空格 return ' ' if count % 2 == 1 else match.group(0) result = re.sub(r' , ', replace_func, strng) print(result)
这个方法会逐个处理每个,,精准区分奇偶位置,完美匹配需求。
为啥不能直接用replace?
你说的没错,str.replace()是批量替换所有目标字符,没法区分出现的位置,所以必须用这种能逐个处理、计数的方式。
内容的提问来源于stack exchange,提问作者Reut
相关产品推荐
相关产品推荐

