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

基于Dictionary的解码器代码简化求助:如何优化重复分支逻辑?

简化你的字典解码器代码

你的核心需求是把输入的字符串列表通过字典映射转换后逐个打印,完全不需要针对不同长度写重复的分支代码,用循环就能搞定,下面是优化后的代码:

# 用字典推导式自动生成解码器,替代手动写所有键值对
decoder = {str(96 + i): str(i) for i in range(10)}

# 输入处理简化:split()直接返回字符串列表,无需额外转换
test = input("Enter the list items separated by space: ").strip().split()

# 遍历每个输入元素,查字典并打印
for item in test:
    print(decoder[item])

优化点说明:

  • 消除重复分支:不管输入有多少个元素,for循环都会逐个处理,不用再写10个if-elif判断长度,代码能处理任意数量的合法输入(只要在字典的键范围内)。
  • 简化输入处理:input().strip().split()本身就会返回由空格分隔的字符串列表,不需要再用list(str(num) for num in ...)做多余的转换。
  • 自动生成解码器字典:原来的字典键是从"96"到"105",对应值"0"到"9",用字典推导式{str(96 + i): str(i) for i in range(10)}可以自动生成,既简洁又避免手动输入可能出现的错误。

如果担心输入的元素不在字典的键里,可以加个异常处理,比如:

for item in test:
    try:
        print(decoder[item])
    except KeyError:
        print(f"无效输入:{item}")

内容的提问来源于stack exchange,提问作者Fĭř Š

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 00:15:40