Python错误:IndexError列表索引超出范围

时间:2017-11-09 17:39:30

标签: python dictionary input key

 file = open(selection, 'r')
 dict = {}
 with open(selection, 'r') as f:
    for line in f:
        items = line.split()
        key, values = items[0], items[1:]
        dict[key] = values
 englishWord = dict.keys()
 spanishWord = dict.values()

您好, 我正在开展一个项目,我有一个西班牙语和英语单词的文件。我试图把这些话,并把它们放入字典中。该文件如下所示:

library,la biblioteca
学校,la escuela
餐厅,餐厅 电影院,电影院 机场,el aeropuerto
博物馆,el museo 公园,公园 大学,大学 办公室,la oficina
房子,拉卡萨

每次运行代码时,都会收到有关范围的错误。我做错了什么?

3 个答案:

答案 0 :(得分:2)

您的文件中可能有空行,导致空items - 列表:

dict = {}
with open(selection, 'r') as lines:
    for line in lines:
        items = line.split()
        if items:
            key, values = items[0], items[1:]
            dict[key] = values

答案 1 :(得分:1)

如果需要,您无需先打开文件! 此外,您还需要指定用于拆分的字符必须是什么,否则它会在每个空格上拆分,而不是按照您的意愿拆分。 此代码有效(假设您的文件名为'file.txt'):

dict = {}
with open('file.txt', 'r') as f:
    for line in f:
        items = line.split(',')
        print(items)
        key, values = items[0], items[1:]
        dict[key] = values
englishWord = dict.keys()
spanishWord = dict.values()

答案 2 :(得分:1)

检查以确保没有空行。

dict = {}
with open(selection, 'r') as lines:
    for line in lines:
        items = line.split()
        if (len(items) > 1):
            if items:
                key, values = items[0], items[1:]
                dict[key] = values