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

如何使用字符映射列表替换输入字符串中的字符?

字符映射替换字符串的代码修复方案

原代码存在的问题

  • 字典构建逻辑错误:zip(characters)会把每个元素包装成单元素元组,且未完成键值对的赋值操作,无法生成正确的字符映射关系。
  • 无容错处理:直接通过dic[letter]取值时,若字符不在映射字典中会触发KeyError报错。
  • 映射分组错误:未将列表中的元素按「原字符-替换字符」的方式两两配对。

修正后的代码

string = "stringa"

# 按「原字符, 替换字符」的顺序两两定义映射
characters = [
    "a", "b",
    "s", "z"  # 可按需添加更多映射规则
]
# 从列表中提取键值对,构建映射字典
char_map = dict(zip(characters[::2], characters[1::2]))

result = ""
for letter in string:
    # 存在映射则替换,不存在则保留原字符
    result += char_map.get(letter, letter)

print(result)  # 输出:ztringb

input('Press Any Key To Exit')

关键说明

  • characters[::2]提取列表中所有偶数索引的元素(作为原字符),characters[1::2]提取所有奇数索引的元素(作为替换字符),zip()将两者配对后用dict()转为字典。
  • char_map.get(letter, letter)是安全取值方式,避免了无映射字符的报错问题,确保程序稳定运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 09:35:22