用python写已知六位同学的成绩:scores=["张:85","李: 86","王: 92","赵:78","钱:73","马:98"]使用列表生成器与匿名函数生成一个新的列表,这个列表显示高于平均成绩的同学的名字。
时间: 2024-12-03 08:09:59 浏览: 15
Exercism-Python-High-Scores-Exercise:Exercism.io的Python高分练习
可以使用Python的列表推导式结合匿名函数(lambda表达式)以及内置的`sum`函数和`len`函数来计算平均分并过滤出高于平均分的同学名字。首先,我们需要将给定的字符串转换为字典,然后计算总分、求平均值,最后筛选出成绩超过平均分的学生。以下是相应的代码:
```python
scores = ["张:85", "李: 86", "王: 92", "赵:78", "钱:73", "马:98"]
# 将字符串转为字典
students_scores = [name.split(':')[0] for name in scores]
# 计算总分
total_score = sum(int(score) for score in students_scores)
# 计算平均分
avg_score = total_score / len(students_scores)
# 使用列表推导式和匿名函数找出高于平均分的学生
above_avg_students = [name for name, score in zip(students_scores, map(int, students_scores)) if score > avg_score]
print(above_avg_students)
阅读全文