【问题标题】:How can I write with a translator's dictionary?如何用翻译词典写作?
【发布时间】:2021-01-02 11:15:19
【问题描述】:

这就是我的程序的结构:

输入的第一行有一个n,表示翻译词典中的单词数。接下来的 n 行中的每一行都包含四个单词,第二个到第四个单词是第一个单词的翻译。每个单词都被翻译成三种不同的语言。第二个词是英文翻译,第三个词是法语翻译,第四个词是第一个词的德语翻译。最后一行包含一个需要从英语、法语或德语中的一种语言翻译成第一个单词的句子。一个句子由几个用空格隔开的单词组成。

输入:

4
man I je ich

kheili very très sehr

alaghemand interested intéressé interessiert 

barnamenevisi programming laprogrammation Programmierung

I am very interested in programming

正确的输出:

man am kheili alaghemand in barnamenevisi

我的代码:

tedad = int(input())
d = dict(input().split(' ') for i in range(tedad))
c = ''
car = input().split(' ')

for x in car:
    if x in d:
        c+= ' '+d[x]

    else:
        c+=' '+x


print(c.strip())

我的代码有问题并显示错误的输出。请帮我更正代码并根据示例输出显示。

【问题讨论】:

  • 从一种语言翻译成另一种语言并不像写一本字典那样简单,将单词映射到另一种语言中的可能含义之一。所以,你解决问题的方法不会一直给出正确的结果。有时,它可能会起作用,但并非总是如此。作为参考,即使是谷歌翻译也不会显示 100% 正确的结果,并且与所讨论的语言有细微的偏差。除了跨语言的简单 1 对 1 单词映射所能处理的问题之外,要考虑的事情太多了。
  • 你说你得到了另一个输出,但dict(input().split(' ') for i in range(tedad)) 与你提供的输入不兼容(不是每行两个字),所以唯一可能的输出是错误
  • 你的观点是完全错误的,如果你仔细阅读我的问题,你肯定会明白
  • 如果可能,请在答案栏中写下我的错误,谢谢

标签: python dictionary


【解决方案1】:

dict(input().split(' ') for i in range(tedad)) 与您提供的输入不兼容,每行不包含 2 个字

一种方法可以来自您的代码:

tedad = int(input())
d = {}
for i in range(tedad):
    l = input().split()
    for x in l[1:]:
        d[x] = l[0]

c = ''
car = input().split()

for x in car:
    c += ' ' + (d.get(x) or x)

print(c[1:])

在文件 p.pyi 中的输入:

pi@raspberrypi:/tmp $ cat i
4
man I je ich
kheili very très sehr
alaghemand interested intéressé interessiert 
barnamenevisi programming laprogrammation Programmierung
I am very interested in programming
pi@raspberrypi:/tmp $ python3 p.py < i
man am kheili alaghemand in barnamenevisi
pi@raspberrypi:/tmp $ 

【讨论】:

  • 非常感谢。你的回答完全正确
猜你喜欢
  • 2018-07-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-30
  • 1970-01-01
  • 2011-03-13
  • 1970-01-01
  • 2022-11-18
相关资源
最近更新 更多