簡體   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