You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何更简洁优雅地交换字符串中两个字符的所有实例?

交换字符串中两个特定字符的更优方法

方法1:使用str.translate()(最简洁高效)

Python的str.translate()是专门用于字符映射替换的原生方法,完美适配这类字符交换场景,不仅代码简洁,性能也更出色。

实现步骤:

  • 用str.maketrans()创建字符映射字典,将需要交换的两个字符互相映射
  • 调用translate()完成批量替换

示例代码:

text = "AAAXYAYXAXX"
# 定义映射规则:X替换为Y,Y替换为X
trans_table = str.maketrans({"X": "Y", "Y": "X"})
result = text.translate(trans_table)
print(result)  # 输出: AAAYXAXYAYY

方法2:生成器表达式(直观易读)

通过遍历字符串的每个字符,用条件判断实现类似变量交换的逻辑,可读性强,符合你想要的直观写法:

text = "AAAXYAYXAXX"
char1, char2 = "X", "Y"
result = ''.join([char2 if c == char1 else char1 if c == char2 else c for c in text])
print(result)  # 输出: AAAYXAXYAYY

对比原方法的优势

  • 原方法依赖临时占位字符,存在占位符与原字符串中已有内容冲突的风险(比如原字符串恰好包含"tempB"),上述两种方法完全规避了这个问题
  • str.translate()是底层优化的方法,处理长字符串时,性能远优于多次嵌套replace()调用
  • 生成器表达式的写法更贴近你期望的a, b = b, a直观逻辑,代码可读性更强

内容的提问来源于stack exchange,提问作者cliesens

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 05:34:52