Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.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 3.x 如何附加到二维列表的最后一个元素?_Python 3.x_Multidimensional Array - Fatal编程技术网

Python 3.x 如何附加到二维列表的最后一个元素?

Python 3.x 如何附加到二维列表的最后一个元素?,python-3.x,multidimensional-array,Python 3.x,Multidimensional Array,我想做的是创建一个二维列表。外部列表将是学生数据,内部列表是学生的姓名,其中包含他们的所有考试分数。 如果他们的名字studentName已经在外部列表中,那么它只是将另一个finalScore附加到相应的内部列表中。 然而,我不断地得到一个错误,我不能附加到最后一行的字符串中 with open('class_three.txt') as file: for line in file: studentName, finalScore = line.spl

我想做的是创建一个二维列表。外部列表将是学生数据,内部列表是学生的姓名,其中包含他们的所有考试分数。 如果他们的名字studentName已经在外部列表中,那么它只是将另一个finalScore附加到相应的内部列表中。 然而,我不断地得到一个错误,我不能附加到最后一行的字符串中

with open('class_three.txt') as file:
        for line in file:
            studentName, finalScore = line.split(": ")
            finalScore = finalScore.rstrip("\n")
            studentDataList = [[0 for x in range(3)] for x in range(30)] 
            if studentName in studentDataList:
                positionOfName = studentDataList.index(studentName)
                studentDataList[positionOfName].append(finalScore)
            else:
                studentDataList.append(studentName)
                studentDataList[-1].append(finalScore)
文件类_three.txt如下所示:

jak: 1
kate: 9
niki: 10
abi: 5
mart: 2
zeddy: 7
jak: 5
jak: 3
kate: 5

我能做些什么来修复我遇到的错误?有什么方法可以改进我正在尝试的方法吗?任何建议都将不胜感激。如果这是一个重复的问题,我也深表歉意。

您应该使用列表词典来解决此问题:

studentDataDict = {}
with open('class_three.txt') as file:
    for line in file:
        studentName, finalScore = line.strip().split(": ")
        if studentName in studentDataDict:
            studentDataDict[studentName].append(finalScore)
        else:
            studentDataDict[studentName] = [finalScore]
然后studentDataDict将如下所示:

{
    'abi': ['5'], 
    'niki': ['10'], 
    'kate': ['9', '5'], 
    'mart': ['2'], 
    'jak': ['1', '5', '3'], 
    'zeddy': ['7']
}

studentDataList.appendstudentName会在studentDataList的末尾添加一个字符串,因此当然studentDataList[-1]。appendfinalScore失败;你想要像studentDataList.append[studentName,finalScore]这样的东西吗?我以前尝试过使用字典,但无法正确地进行append。非常感谢你!!