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

如何修改Python实现的简易翻译器代码以获得正确预期输出?

问题原因
  • 循环逻辑顺序错误:当前代码先遍历翻译映射字典的key,再遍历待翻译的单词序列,每匹配一条翻译规则就会触发一次单词拼接,导致最终输出重复拼接了多轮结果
  • else分支位置错误:你把else加在了内层if判断后,每一次某单词和当前映射不匹配时就会直接拼接原词,完全不符合翻译逻辑
修正方案

把循环顺序反过来,优先遍历每个待翻译的单词,为了提升查找效率可以提前把翻译字典的映射关系反转,把多语言单词作为key,目标翻译词作为value,对每个单词先查找是否存在对应的目标翻译,存在就用翻译结果,不存在就保留原词:

mylist = []
mydict = {}
mystr = ""

num = int(input())

for i in range(num):
    mylist.append(input())
for item in mylist:
    temp = item.split()
    # 反转映射关系,方便直接查找多语言词对应的目标翻译
    for lang_word in temp[1:4]:
        mydict[lang_word] = temp[0]
word = input()
word_s = word.split()

for w in word_s:
    # 有翻译就用翻译结果,没有就保留原词
    mystr += f"{mydict.get(w, w)} "

# 去掉末尾多余空格后输出
print(mystr.strip())
验证结果

输入你给出的测试用例后,输出为:

man am kheili alaghemand in barnamenevisi

和预期结果完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 09:36:01