У вас mid_grades=sum(grades)/len(grades) - это список списков, то есть суммируются списки, а не элементы списков.
И неверная идея со множеством фамилий, из множества они будут извлекаться в неизвестном порядке, то есть оценки отвяжутся от фамилий, список оценок не будет соответствовать фамилии.
grades = [[5, 3, 3, 5, 4], [2, 2, 2, 3], [4, 5, 5, 2], [4, 4, 3], [5, 5, 5, 4, 5]]
for i in grades:
mid_grades=sum(i)/len(i)
print(mid_grades)
Затык именно в вычислении среднего балла:
mid_grades=sum(grades)/len(grades)
На вход даны следующие данные:
1.Список: grades = [[5, 3, 3, 5, 4], [2, 2, 2, 3], [4, 5, 5, 2], [4, 4, 3], [5, 5, 5, 4, 5]]
2.Множество: students = {'Johnny', 'Bilbo', 'Steve', 'Khendrik', 'Aaron'}
Список grades содержит списки оценок для каждого ученика в алфавитном порядке.
Например: 'Aaron' - [5, 3, 3, 5, 4]
Множество students содержит неупорядоченную последовательность имён всех учеников в классе.
Напишите программу, которая составляет словарь, используя grades и students, где ключом будет имя ученика, а значением - его средний балл.