如何在Python中切换字符串内的所有算术运算符号
问题原因
你原先两次链式调用replace()的写法会出现覆盖问题:
- 第一步执行
replace("+", "-")后,原字符串"+1-2"会先变成"-1-2" - 第二步执行
replace("-", "+")时,会把上一步生成的所有-统一替换为+,最终得到错误结果"+1+2"
一行式解决方案
使用Python内置的str.maketrans()构造字符映射表,配合str.translate()一次性完成所有字符替换,每个原字符只会被处理一次,不会出现先后替换的覆盖问题:
"+1-2".translate(str.maketrans({"+": "-", "-": "+"}))
运行后输出为预期结果'-1+2'。
内容的提问来源于stack exchange,提问作者Cardstdani
相关产品推荐
相关产品推荐

