我正在使用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()
输出:
答案 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')