Вы можете собрать все значения для каждого ключа и затем взять макс.Или вместо этого прочитайте каждую строку, получите ключ и значение и проверьте, превышает ли это значение текущее значение.Если это так, замените его.Значение по умолчанию для defaultdict(int)
равно 0, поэтому оно всегда должно быть ниже любой оценки, имеющейся в вашем файле.
from collections import defaultdict
winner = defaultdict(int)
with open ("Scores.txt") as file:
for line in file:
(key, val) = line.split()
val = int(val)
if val > winner[key]:
winner[key] = val
print(winner)
Печать defaultdict(<class 'int'>, {'Jeff': 66, 'Tom': 76, 'Aaron': 67, 'Eva': 47})
Если могут быть отрицательные оценки, используйте defaultdict(lambda: -10000)
(или любое другое отрицательное число, меньшее минимально возможного).