一个嵌套的字典,形式为{姓名1:{课程名称1:分数1,课程名称2:分数2,…},…},输入一些数据,然后计算每个同学的总分、各科平均分。有人知道怎么写吗
student=dict() #定义一个字典
while 1:
name=input('姓名:')
if not name: #姓名为空结束循环
break
score1=float(input('课程1:'))
score2=float(input('课程2:'))
sco={'课程1':score1,'课程2':score2}
student[name]=sco
a={k:sum(v.values()) for k,v in student.items()} #每个人总分
b=sum([v['课程1'] for k,v in student.items()])/len(student) #课程1平均分
字典数据也是要靠输入收集吗
大致给个例子
dic = {}
num = int(input('学生数量:'))
for i in range(num):
name = input('姓名:')
dic[name] = {}
count = int(input('课程数量:'))
for j in range(count):
classname = input('课程名字:')
gra = int(input('成绩:'))
dic[name][classname] = gra
for k,v in dic.items():
sumk = 0
maxk = 0
count =0
for k1,v1 in v.items():
sumk += v1
count +=1
if maxk < v1:
maxk = v1
print('{}最高分{},平均分{}'.format(k,maxk,sumk/count))