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

如何将普通字符列表替换为自定义字符列表实现文本字母映射转换?

字符替换功能实现方案

原代码问题梳理

  • str.replace() 方法仅返回替换后的新字符串,不会修改原字符变量,当前代码未接收返回值,替换结果直接丢失
  • 直接传入modified列表作为替换参数逻辑错误,需要先通过原字符在normal列表的索引,匹配对应的自定义替换字符
  • 未拼接所有替换后的字符,无法生成最终转换结果输出

修复后可运行代码

normal = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k',
          'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v',
          'w', 'x', 'y', 'z']

modified = ['s', 'n', 'v', 'f', 'r', 'g', 'h', 'j', 'o', 'k', 'l', 'a',
            'z', 'm', 'p', 'q', 'w', 't', 'd', 'y', 'i', 'b', 'e', 'c', 'u', 'x']

# 预先构建映射字典,查询效率更高
char_map = dict(zip(normal, modified))

word = input()
result = []
for char in word:
    # 匹配到小写字母就替换,其他字符(空格、大写、符号等)原样保留
    if char in char_map:
        result.append(char_map[char])
    else:
        result.append(char)

# 拼接列表为字符串输出
print(''.join(result))

核心调整说明

  • 用zip()把normal和modified列表打包成键值对字典,后续查询替换字符的效率比每次查列表索引更高
  • 用空列表存储每一步处理后的字符,最后用join()方法拼接成完整字符串输出
  • 未匹配到的字符会原样保留,支持输入带空格、标点、大写字母的完整句子

如果需要支持大写字母替换,只需要在判断前增加大小写兼容处理即可,示例:

for char in word:
    lower_char = char.lower()
    if lower_char in char_map:
        replaced = char_map[lower_char]
        # 原字符是大写的话,替换结果也转大写
        result.append(replaced.upper() if char.isupper() else replaced)
    else:
        result.append(char)

内容的提问来源于stack exchange,提问作者Lee Zhi Han Nicholas

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 14:45:03