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

时间:2016-03-18 09:18:03

标签: python list

我尝试使用从CSV文件中检索的数据对平均分数进行排序,但是当我运行代码时,它会抛出错误:

row[1] = int(row[1])
IndexError: list index out of range

我的代码如下:

print("Would you like to see previous results?")
    print("Press 1 to see previous results for your class. Press 2 to close the program")
    answer = int(input())
    if answer == 1:
        print("How would you like data to be sorted?")
        print("Press 1 for average")
        print("Press 2 for highest to lowest")
        print("Press 3 for alphabetically")
        sort_num = int(input())
        if sort_num == 1:
            f = open("Class 2.csv")
            csv_f = csv.reader(f)
            newlist = []
            for row in csv_f:
                row[1] = int(row[1])
                row[2] = int(row[2])
                row[3] = int(row[3])

                average = round(sum(row[1:3])/3)
                row.append(average)
                newlist.append(row[0:4])
            print(newlist)

有人可以解释为什么我有这个错误显示我出错了吗?

1 个答案:

答案 0 :(得分:0)

尝试在执行已发布的操作之前打印行的内容。

f = open("Class 2.csv")
        csv_f = csv.reader(f)
        newlist = []
        for row in csv_f:
            print("row == {} // type(row) == {}".format(row, type(row)))
            row[1] = int(row[1])
            row[2] = int(row[2])
            row[3] = int(row[3])

如果row为void或只包含一个元素,并且在最后一种情况下你必须访问元素0(在代码中:row [0]),你就会遇到这种类型的错误。

打印行类型是为了验证行的类型(但是,我不认为该行的类型与' list')

不同

希望这可以帮助你: - )

相关问题