Попробуйте это:
from itertools import zip_longest
with open('scores.txt', 'r') as f:
content = f.read()
print(content)
# prints just string
print(content.splitlines())
# ['exam1 exam2 final', '87 85 90', '90 95 89', '73 81 85', '98 93 94', '78 76 82']
print([c.split() for c in content.splitlines()])
# [['exam1', 'exam2', 'final'], ['87', '85', '90'], ['90', '95', '89'], ['73', '81', '85'], ['98', '93', '94'], ['78', '76', '82']]
list1 = [c.split() for c in content.splitlines()]
# transpose onliner ;)
print(list(map(list, zip(*list1))))
# [['exam1', '87', '90', '73', '98', '78'], ['exam2', '85', '95', '81', '93', '76'], ['final', '90', '89', '85', '94', '82']]
# if You have lists of different sizes this may suit better
print(list(map(list, zip_longest(*list1))))
https://docs.python.org/3.6/library/itertools.html#itertools.zip_longest