Python 3.x 如何附加到二维列表的最后一个元素?
我想做的是创建一个二维列表。外部列表将是学生数据,内部列表是学生的姓名,其中包含他们的所有考试分数。 如果他们的名字studentName已经在外部列表中,那么它只是将另一个finalScore附加到相应的内部列表中。 然而,我不断地得到一个错误,我不能附加到最后一行的字符串中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
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。非常感谢你!!