统计分数的最高分和最低分

实验内容:在文本文件scores.txt中保存了一些专业的课程平均分,如下图所示:
专业 C语言 Java Python C# Javascript
软件工程 95 96 85 63 91
计算机科学与技术 75 93 66 85 88
网络工程 86 76 96 93 67
编写一个Python程序,读入文本文件scores.txt中的数据,存放在二维列表中,并输出所有专业的分数;计算每个专业的最高分和最低分,按输出格式要求输出每个专业的名称、最高分、最低分以及对应的课程名(已知没有同分的情况);
我的代码:
scoreslist = []
with open("scores.txt","r",encoding = "utf-8") as fi: #以中文编码方式打开文本文件
for line in fi:
scoreslist.append(line #1读入文件中每行数据,构造二维列表
no = scoreslist_dict( #2科目数
num = scoreslist_dict( #3专业数
for i in range(0,num+1):
print("{0:>20}".format(str(scoreslist[i] #输出二维列表中所有元素
此处如何实现换行#4换行
for i in range(1,num+1:
scoreslist[i].append(max(map(int,scoreslist[i][1:] #计算最高分
scoreslist[i].append(min(map(int,scoreslist[i][1:] #计算最低分

for i in range scoreslist_dict(: #5遍历专业
for j in range scoreslist_dict(: #6遍历科目
if int(scoreslist[i][j]) == scoreslist[i][-2]:
scoreslist[i][-2] =(scoreslist[0][j],scoreslist[i][-2]) #找最高分科目和分数
if int(scoreslist[i][j]) == scoreslist[i][-1]:
scoreslist[i][-1] =(scoreslist[0][j],scoreslist[i][-1]) #找最低分科目和分数
print("专业:{0:<10}\t最高分{1:>}\t最低分{2:>}".format(scoreslist,str(scoreslist[i][-2]),str(scoreslist[i][-1] #7格式化输出结果
该如何完善此代码

ls = []
b = {}
with open("e:/python/scores.txt","r",encoding = "utf-8") as fi:
    line = fi.readlines()
    for i in range(len(line)):
        line[i] = line[i].replace("\n","")
        line[i] = line[i].split(" ")
    for i in range(1,6):
        b[line[0][i]] = [line[1][i],line[2][i],line[3][i]]
        ls.append(b)
        b = {}
        
for i in ls:
    for key,value in i.items():
        print(key,min(value),max(value))