Я попытался сэкономить 3 последних результата в списке, а затем добавить этот список в список основных классов, создав список списков с каждым учащимся и их баллы в виде отдельного списка. Коду удается добавить оценки в существующий список, но не отображает первый балл и удаляет его до добавления 3 баллов. Может кто-нибудь мне помочь?Хранение последних 3 баллов?
Student = [] #new list created each time for student
max_scores = 3 #3 scores only at a time in the student's list
if ClassName == "10x1": #if student's input for class is 10x1
for userName in Class10x1:
if userName in Student and len(str(score)) >= max_scores:
Student.pop([1]) #removes second element in list
Student.append(score) #adds most recent score
break #stops code
elif userName in Student and len(str(score)) < max_scores:
Student.append(score)
break
else:
Student.append(userName)
Student.append(score)
break
Class10x1.append(Student) #student's list is appended to main class list
Приведенный выше код печатается так:
[[]]
[['Jagraj', 1], ['Jagraj', 1]]
[['Jagraj', 1, 3], ['Jagraj', 1, 3], ['Jagraj', 1, 3]]
Однако я хочу, чтобы напечатать это следующим образом:
[['Jagraj', 0, 1, 3]]
И то, как только студент 4-го теста, первый счет удаляется, поэтому становится [['Jagraj', 1, 3, 5]] Есть ли способ сделать это или мне нужно восстановить способ хранения данных?
Что такое оценка выглядит? len (str (оценка)) очень беспокоит меня – Dionys
Его просто целое число, сгенерированное после того, как тест был принят –
'len (str (оценка))' возвращает количество разрядов баллов. Я не думаю, что это то, что вы пытаетесь проверить. может быть, len (student) + 1> = max_scores'? – Dionys