简单的翻译使用dict,Python?

时间:2015-12-01 04:17:36

标签: python dictionary

我正在使用dict存储一个文本文件,首先是英文单词,然后是西班牙单词第二列。

我想要它能够搜索一个单词(英文单词),然后将其翻译成西班牙语。我不确定为什么每次输入要翻译的单词时都返回无。

我使用python3,如果这有所不同。

def getDict():
    myDict  = {}

    for line in open("eng2sp.txt"):
       for n in line:
           (eng,span) = line.split()
           myDict[eng] = span


    print("Translate from English to Spanish")
    word = input("Enter the english word to translate:")

    print(search(myDict,word))



def search(myDict,lookup):
    for key, value in myDict.items():
        for v in value:
            if lookup in v:
                return



def main():
    getDict()


main()

输出:

enter image description here

2 个答案:

答案 0 :(得分:4)

这可能更简单:

def search(myDict,lookup):
    if lookup in myDict:
        return myDict[lookup]
    return "NOT FOUND"

此代码将为大型词典提供更好的性能。如果找不到该项,您可能希望返回None而不是字符串,这取决于您希望如何处理该案例。

答案 1 :(得分:2)

实际上不需要搜索功能。您可以通过访问my_dict[word]直接找到翻译。

假设您的文本文件包含以下条目:

hello hola
goodbye adios

然后你可以使用这样的东西:

my_dict = {}

with open('eng2sp.txt','r') as f:
    for line in f.readlines():
        eng, span = line.split()
        my_dict[eng] = span


while True:
    word = input('\nEnter english word to translate: ')
    if word == "":
        break
    elif word in my_dict.keys():
        print(my_dict[word])
    else:
        print('Error: word not in dictionary')