如何使用python词典将英语翻译成瑞典语

2024-10-02 18:22:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用以下代码,但显示的错误索引超出范围

english=["merry", "christmas", "and", "happy", "new", "year"]
swedish=["god","jul","och","gott","nytt","år"]
dict = {english[n]: swedish[n] for n in range(len(english))}#dictionary
trans_list=[]#list to save translated words

def trans(list):
    n=0
    for word1 in list:    
        for word2 in english: 
            if word1==word2:             
                       trans_list[n]=dict[word2]
                       n=n+1
                       print trans_list                 
list2=[]
list =["merry", "christmas", "and", "happy", "new", "year"]
trans(list)

Tags: andintransnewforenglishyeardict
2条回答

trans_list定义为一个列表:

trans_list=[]

然而,这是一个空列表。因此没有可用的索引,赋值行失败:

^{2}$

您只需将值附加到列表中即可:

trans_list.append(dict[word2])

以下是解决问题的另一种方法:

english = ["merry", "christmas", "and", "happy", "new", "year"]
swedish = ["god", "jul", "och", "gott", "nytt", "år"]

eng_swe_dict = {english: swedish for english, swedish in zip(english, swedish)}

def trans(word_list):
    return [eng_swe_dict[word] for word in word_list]

word_list = ["merry", "christmas", "and", "happy", "new", "year"]
print trans(word_list)

这将显示以下内容:

^{2}$

首先,应该避免使用变量名,如dict和{},因为它们是在Python命令中构建的。Python不会抱怨,但您将重新分配其含义。在

可以使用zip命令构造查找字典。在本例中,需要从两个列表中的每个列表中提取一个条目来提供给循环,然后循环将用于构造字典。在

Pythonlist comprehension可用于创建翻译后的列表。对于每个单词,它将其翻译并添加到新列表中。在

相关问题 更多 >