Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python错误:";索引器:列表索引超出范围“;_Python_List - Fatal编程技术网

Python错误:";索引器:列表索引超出范围“;

Python错误:";索引器:列表索引超出范围“;,python,list,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"

我尝试使用从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)

有人能解释一下我为什么会出现这个错误吗?在执行发布的操作之前,请尝试打印行的内容

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])
若行为void或仅包含元素,并且在最后一种情况下您必须访问元素0(代码为:行[0]),则会出现这种类型的错误

打印行的类型是为了验证行的类型(但是,我不认为该行的类型与“列表”不同)


希望这对您有所帮助:-)

为空或只有一项。就这些。你能展示一下你的“Class 2.csv”吗?现在我们只能说“没有
行[1]
”。通过一个示例,我们可能可以帮助您解决错误。