Python如何将数字字符串按每三位用点分隔?
实现按3字符分段并用点连接的方法
嘿,我懂你想要的效果了——把长字符串按每3个字符为一组拆分,再用点连接起来,而不是每个字符都单独拆分。这里有两种实用的方法可以轻松实现:
方法一:使用字符串切片(直观易懂)
这是最直接的方式,通过循环按固定步长截取子串:
test = "123456789123" # 从索引0开始,每次跳3个位置,截取3字符的子串 segments = [test[i:i+3] for i in range(0, len(test), 3)] result = ".".join(segments) print(result) # 输出: 123.456.789.123
这个方法的好处是逻辑清晰,哪怕字符串长度不是3的倍数(比如"1234567"),也会自动处理最后一段不足3个字符的情况,输出"123.456.7",完全符合预期逻辑。
方法二:使用正则表达式(简洁高效)
如果你熟悉正则,用re.sub可以一行搞定:
import re test = "123456789123" # 匹配每3个数字,且后面还有数字的情况,在后面加点 result = re.sub(r'(\d{3})(?=\d)', r'\1.', test) print(result) # 输出: 123.456.789.123
这里的正则逻辑是:(\d{3})捕获连续3个数字,(?=\d)是正向预查,确保这3个数字后面还有其他数字(避免最后一组后面加多余的点),然后用\1.替换,把捕获的3个数字和点拼接起来,完美实现需求。
内容的提问来源于stack exchange,提问作者Alex Meireles
相关产品推荐
相关产品推荐

