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

Python如何用列表推导式单行实现字符串中两个字符的双向互换?

错误原因

你现有代码的问题出在链式调用replace的执行逻辑:

  • 第一步string.replace('X','Y')会把字符串中所有X替换为Y,此时字符串内已不存在任何X字符
  • 第二步replace('Y','X')会把所有Y(包含原本就存在的Y、以及第一步从X转换来的Y)全部替换为X,所以最终所有目标字符都会变成X

可行的单行列表推导式实现

直接遍历字符串每个字符做分支判断替换即可,不会出现替换覆盖的问题,完全符合列表推导式单行实现的要求:

def Function(string):
    return ''.join(['Y' if c == 'X' else 'X' if c == 'Y' else c for c in string])

效果验证

  • 输入'X' → 输出'Y'
  • 输入'Y' → 输出'X'
  • 输入'XY123YX' → 输出'YX123XY'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 08:24:02