繁体   English   中英

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

[英]Python Error: IndexError list index out of range

 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()

您好,我正在一个项目中,我有一个包含西班牙语和英语单词的文件。 我正在尝试将这些单词放入字典中。 该文件如下所示:

图书馆
埃斯库埃拉学校
餐厅,餐厅
电影院,电影院
机场,埃尔埃罗普埃尔托
博物馆,博物馆
帕克公园
大学
办公室,la oficina
房子,拉卡萨

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

您的文件中可能有空行,从而导致空items -list:

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

如果需要,您不需要先打开文件! 另外,您还需要指定用于拆分的字符,否则,它会在每个空格上拆分,而不是在您希望的''上拆分。 此代码有效(假设您的文件名为“ 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()

检查以确保您没有空行。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM