说明
《Python 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gr99123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
已知小明小红小亮的语数英成绩,如何使用Python字典将姓名、学科、成绩分别对应,并且计算谁总分最高?他们的成绩分别是:
代码如下:
from collections import namedtuple
Scores = namedtuple('Scores', ['语文', '数学', '英语'])
dct = {
'小明': Scores(85, 96, 88),
'小红': Scores(72, 80, 91),
'小亮': Scores(83, 69, 75)
}
dct
'''
{'小明': Scores(语文=85, 数学=96, 英语=88),
'小红': Scores(语文=72, 数学=80, 英语=91),
'小亮': Scores(语文=83, 数学=69, 英语=75)}
'''
单个学生的成绩:
# 小红的成绩
dct['小红']
# Scores(语文=72, 数学=80, 英语=91)
计算每个学生的总成绩:
# 每位同学的成绩
totals = {k: sum(v) for k,v in dct.items()}
totals
# {'小明': 269, '小红': 243, '小亮': 227}
对成绩排序:
sorted(totals, key=lambda x: totals[x])
# ['小亮', '小红', '小明']
就得到了总分从高到低的排序列表。
(完)
更新时间:2022-04-30 14:16:06 标签:python 字典