Python如何替换字符串中多个字符?仅最后一个替换生效如何解决
问题排查与修复方案
核心问题原因
- 替换结果未累积:每次执行
x = string.replace(i, " ")时,都是基于最原始的输入字符串string做替换,没有基于上一次替换完成的结果修改,所以只有最后一次分隔符的替换会被保留,之前的替换都会被覆盖。 - 逻辑冗余且依赖全局变量:函数内部循环遍历的是全局变量
s(原字符串转的列表),没有使用传入的参数,同时也不需要额外把字符串转成列表遍历,直接遍历分隔符集合更高效。
修复后代码
string = str(input("Enter a string: ")) delimiter = input("Enter delimiters: ") def split(string, delimiter): # 初始化替换结果为原始字符串 res = string # 遍历所有分隔符逐个替换,每次基于上一次的结果修改 for d_char in delimiter: res = res.replace(d_char, " ") print(res) split(string, delimiter)
效果验证
输入测试用例:
- 输入字符串:
Welcome to Python - 输入分隔符:
oe
运行后输出为W lc m t Pyth n,完全符合预期需求。
内容的提问来源于stack exchange,提问作者daniel
相关产品推荐
相关产品推荐

