# -*- coding: utf-8 -*-
'''
Author: YTNetMan
Date: 2022-04-25
File: 成绩排名.py
功能:
'''
#初始学生列表
student = [
{'name': '小亮', '语文': 93, '数学': 69, '英语': 75},
{'name': '小明', '语文': 85, '数学': 96, '英语': 99},
{'name': '小红', '语文': 72, '数学': 80, '英语': 91}
] # 保存学生成绩的列表
# 给字典添加两组数据
for a in student:
a1l = int(a.get('语文')+a.get('数学')+a.get('英语')) #总成绩
avg = float('%.2f'%((a.get('语文')+a.get('数学')+a.get('英语'))/3)) #平均分,格式化
a['总成绩'] = a1l
a['平均分'] = avg
print(student) # 新列表
student.sort(key=lambda x : x['总成绩'],reverse = True) #按总成绩排序
print(student) # 排序后的列表
n=0 #排名初始值
#平均分表现
for i in student:
n=n+1
if int(i.get('平均分')) >= 90:
avg1 = '优'
elif 80 <= int(i.get('平均分')) < 90 :
avg1 = '良'
elif 60 <= int(i.get('平均分')) < 80:
avg1 = '中'
else:
avg1 = '差'
print("第%d名是:%s,总成绩为%d分,表现%s"%(n,i.get('name'),i.get('总成绩'),avg1))