某班的3门成绩,请按照3门成绩的平均成绩为排序依据,进行降序,并输出平均成绩的前两名。 其中记录成绩的字符串为:“张三 56 75 86;李四 75 85 90;王五 66 95 99;赵六 70 90 85"用python语言
时间: 2024-11-29 17:39:28 浏览: 15
要使用Python对给定的成绩字符串按照平均分从高到低排序,我们可以先解析出每个学生的姓名和分数,然后计算平均分,最后按照平均分进行降序排列。以下是相应的Python代码:
```python
# 定义一个函数将学生名字和分数分割并计算平均分
def calculate_average(scores):
name_scores = scores.split(';')
averages = []
for score in name_scores:
parts = score.split()
name = parts[0]
grades = [int(num) for num in parts[1:]]
average = sum(grades) / len(grades)
averages.append((name, average))
return averages
# 输入的学生成绩字符串
scores_string = "张三 56 75 86;李四 75 85 90;王五 66 95 99;赵六 70 90 85"
# 计算平均成绩并排序
averages = calculate_average(scores_string)
sorted_averages = sorted(averages, key=lambda x: x[1], reverse=True)
# 输出前两名学生的平均成绩
top_two = sorted_averages[:2]
for i, (name, average) in enumerate(top_two):
print(f"{i+1}. {name}: 平均成绩 {average}")
阅读全文