Кажется, что большая часть этого уже сделана, и вы уже хорошо понимаете, как разбить каждую строку на два нужных вам компонента, так что вы очень близки!
Во-первых, так какданные считываются в виде строки, вам необходимо преобразовать часть ваших данных в целые числа:
for line in file:
tmp = line.split()
name, scores = tmp[0], list(map(int, tmp[1:]))
Это даст нам каждое имя вместе со списком баллов в виде целых чисел.Теперь все, что вам нужно сделать, это найти среднее значение:
average = sum(scores)/len(scores)
Давайте свяжем все это вместе, присвоив словарю:
dct[name] = average
И мы получим:
{'joe': 23.0, 'bill': 20.0, 'sue': 16.166666666666668, 'grace': 23.666666666666668, 'john': 35.2}