代码
# 先按班级名排序,再输出
student_map = {
"ClassC": {
"01208": 70, "01209": 85},
"ClassA": {
"01201": 90, "01202": 95},
"ClassB": {
"01205": 80, "01206": 80, "01207": 85},
}
for cls in sorted(student_map.keys()): # 按班级名称升序排列
students = student_map[cls]
print(cls)
# 按分数降序排序,分数相同按学号升序排列
sorted_students = sorted(students.items(), key=lambda x: (-x[1], x[0])) # (分数降序, 学号升序)
res = ";".join(student[0] for student in sorted_students) # 输出学号
print(res)
ClassA
01202;01201
ClassB
01205;01206;01207
ClassC
01209;01208
1. 数据结构 student_map
- 字典(Dictionary):
student_map
是一个字典,键为班级名称(如"ClassA"
),值为另一个字典,包含学号和对应的分数。 - 内部字典: 内部字典的键是字符串格式的学号(如
"01201"