编写一个Python程序。

4、 实验内容:在文本文件scores.txt中保存了一些专业的课程平均分,如下图所示:

img

编写一个Python程序,读入文本文件scores.txt中的数据,存放在二维列表中,并输出所有专业的分数;计算每个专业的最高分和最低分,按输出格式要求输出每个专业的名称、最高分、最低分以及对应的课程名(已知没有同分的情况);输出格式参照下图:

img

with open('scores.txt','r') as f:
    data = f.readlines()
 
lst = [d.split() for d in data]
 
head = lst[0]
scores = [ [s[0]]+[int(s[i+1]) for i in range(len(s)-1)] for s in lst[1:] ]
 
for i in [head]+scores:
    print(i)
print()
 
for score in scores:
    smax, smin = max(score[1:]),min(score[1:])
    dic = {n:head[i] for i,n in enumerate(score)}
    tmax = f"最高分('{dic[smax]}',{smax})"
    tmin = f"最低分('{dic[smin]}',{smin})"
    print(f"专业:{score[0].ljust(9,' ')} {tmax:<18} {tmin:<18}")



'''
注:最一行中.ljust(9,' ') 的空格为中文全角空格,用半角可能对不齐

输出:

['专业', 'C语言', 'Java', 'Python', 'C#', 'Javascript']
['软件工程', 95, 96, 85, 63, 91]
['计算机科学与技术', 75, 93, 66, 85, 88]
['网络工程', 86, 76, 96, 93, 67]

专业:软件工程      最高分('Java',96)     最低分('C#',63)      
专业:计算机科学与技术  最高分('Java',93)     最低分('Python',66)  
专业:网络工程      最高分('Python',96)   最低分('Javascript',67)
'''