用Python翻译单词的最有效方法

用Python翻译单词的最有效方法,python,dictionary,internationalization,Python,Dictionary,Internationalization,您好,我想问一下,您在下面看到的是不是用python翻译单词的最快、最有效的方法。我只需要从其他外语翻译成英语。把每一种语言的词典分成一本词典会更有效吗?还是现在这样好?如果代码能够在Python2.7和3.x及更高版本中工作,那就太好了。在下面的代码中,我必须将iteritems更改为items,这没什么大不了的 #!/usr/bin/env python # -*- coding: utf-8 -*- dct = {'apple': ['apfel', 'pomme', 'manzana'

您好,我想问一下,您在下面看到的是不是用python翻译单词的最快、最有效的方法。我只需要从其他外语翻译成英语。把每一种语言的词典分成一本词典会更有效吗?还是现在这样好?如果代码能够在Python2.7和3.x及更高版本中工作,那就太好了。在下面的代码中,我必须将iteritems更改为items,这没什么大不了的

#!/usr/bin/env python
# -*- coding: utf-8 -*-

dct = {'apple': ['apfel', 'pomme', 'manzana', 'jabłko'],
       'pineapple': ['ananas', 'ananas', 'piña', 'ananas']}


def translate(q):
    for eng_word, trans_list in dct.iteritems():
        for trans_word in trans_list:
            if trans_word == q:
                q = eng_word
                print q
                return q

query = 'pomme'

query = translate(query)

query = 'ananas'

query = translate(query)

print query

使用关键字为外来词、值为英语单词的词典。然后,您可以用一行代码在O(1)时间内进行翻译

d = {'apfel': 'apple', 'jablko': 'apple', 'ananas': 'pineapple', 'manzana': 'apple', 'pomme': 'apple', 'pina': 'pineapple'}
print d["pomme"]

如果你只需要翻译成英语,你应该走另一条路,这样你就可以在固定的时间内完成(也就是说,在字典中使用外来词作为关键字)。但是,如果“同一个”单词根据语言有两种含义,会发生什么呢?它只翻译第一个匹配词。这应该是最快的方法,对吗?我很有信心,在我的程序中不会有相同的单词(它将有相当有限的词汇仅用于程序目的)好的。好吧,回答你的问题,不,这远远不是最有效的方法,因为你可能每次都要扫描整个列表。谢谢你的回答。我是编程新手,所以我可能错了,但在第一次“返回”匹配后,它不会停止扫描列表吗?是的。但最坏情况下的性能是线性的,因为如果所需的字是最后一个数组的最后一个元素,则需要扫描所有内容。另一方面,如果你按翻译输入词典,最坏情况下的性能是恒定的,无论你想要哪个单词。当然你必须考虑我输入了一个你不知道的单词的情况。好的,然后你可以做
print d.get(“pomme”),谢谢你的快速回答