Python replace()函数未按预期工作问题排查
问题原因分析
问题出在Python字符串的不可变性以及你对replace()方法的使用逻辑上:
- Python里的字符串属于不可变对象,调用
replace()方法不会直接修改原字符串本身,而是会返回一个完成替换操作的新字符串。 - 你在循环中执行
res.replace(i,j)时,只是生成了新字符串但没有把它重新赋值给res变量,所以原变量res始终保留着初始的heeellooo值,最终打印结果自然不会变化。
修正后的代码
将替换后的新字符串重新赋值给res即可得到预期结果:
res = "heeellooo" D = {"aaa":"a","eee":"e","iii":"i","ooo":"o","uuu":"u","yyy":"y"} for i,j in D.items(): res = res.replace(i,j) print(res)
内容的提问来源于stack exchange,提问作者Bounoua Ilyas
相关产品推荐
相关产品推荐

