from operator import itemgetter
# 有学生考试分数
message = [
{"姓名": "小明", "学号": "05", "班级": 1, "分数": 80},
{"姓名": "小红", "学号": "04", "班级": 1, "分数": 90},
{"姓名": "小王", "学号": "02", "班级": 1, "分数": 95},
{"姓名": "小花", "学号": "08", "班级": 2, "分数": 88},
{"姓名": "小丽", "学号": "07", "班级": 2, "分数": 88},
{"姓名": "小刘", "学号": "09", "班级": 2, "分数": 88},
{"姓名": "小天", "学号": "01", "班级": 2, "分数": 95},
]
# 排序规则:
# 1.按照分数从小到大排序
# 2.分数相同,则按照班级从小到大排序
# 3.分数和班级都相同,按照学号从小到大排序
new_message = sorted(message, key = itemgetter("分数", "班级", "学号"))
print(new_message)
需要注意的是:sorted默认排序是从小到大
打印结果如下:
[
{'姓名': '小明', '学号': '05', '班级': 1, '分数': 80},
{'姓名': '小丽', '学号': '07', '班级': 2, '分数': 88},
{'姓名': '小花', '学号': '08', '班级': 2, '分数': 88},
{'姓名': '小刘', '学号': '09', '班级': 2, '分数': 88},
{'姓名': '小红', '学号': '04', '班级': 1, '分数': 90},
{'姓名': '小王', '学号': '02', '班级': 1, '分数': 95},
{'姓名': '小天', '学号': '01', '班级': 2, '分数': 95}
]