


Нужна помощь, задача по python
Помогите с задачей пжл, (я полный чайник), чет так и так пробую, все пишет, что ошибка (TypeError: unsupported operand type(s) for +: 'int' and 'list')
Затык именно в вычислении среднего балла:
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, где ключом будет имя ученика, а значением - его средний балл.
У вас 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)
# Данные
grades = [[5, 3, 3, 5, 4], [2, 2, 2, 3], [4, 5, 5, 2], [4, 4, 3], [5, 5, 5, 4, 5]]
students = {'Johnny', 'Bilbo', 'Steve', 'Khendrik', 'Aaron'}
# Приводим список студентов к упорядоченному списку
students_list = sorted(students)
# Создаем словарь для хранения средних баллов
average_grades = {}
# Расчет среднего балла для каждого студента
for student, grade_list in zip(students_list, grades):
average_grades[student] = sum(grade_list) / len(grade_list)
# Вывод результата
print(average_grades)
Скорее всего len возвращается как str, попробуй отдельную переменую int создать и выводить их значения до операции деления...