如何让Python将字符串中重复的多个空格统一替换为三个空格?
解决单词间多空格统一替换为三个空格的问题
你的原代码存在两个核心问题:
replace(" ", "...")会把每个单个空格独立替换成三个点,多个连续空格会被拆成多组替换结果(比如两个空格会变成......),无法实现统一替换的效果;- 仅用
strip()只能去除首尾空格,无法处理字符串中间的连续空格组。
正确实现方式(使用re模块)
利用正则表达式匹配一个或多个连续空格,再统一替换为三个空格:
import re def main(): # 先去除首尾空格,再替换中间任意数量的空格为三个空格 input_str = input().strip() result = re.sub(r' +', ' ', input_str) print(result) if __name__ == "__main__": main()
代码说明
strip():清除输入字符串首尾的空格,避免首尾无意义的空格被替换;re.sub(r' +', ' ', input_str):r' +'是正则表达式,专门匹配一个或多个连续的空格(如果需要匹配制表符等其他空白字符,可改成r'\s+');- 第二个参数
' '是替换目标,即固定三个空格; - 该方法会把所有连续空格组一次性替换为三个空格,完全满足你的需求。
测试示例
输入:hello world python(hello后3个空格,world后4个空格)
输出:hello world python(每个单词间均为3个空格)
内容的提问来源于stack exchange,提问作者somnambulist
相关产品推荐
相关产品推荐

