scores=[“张:85”,“李: 86”,“王: 92”,“赵:78”,“钱:73”,“马:98”]使用列表生成器与匿名函数生成一个新的列表,这个列表显示高于平均成绩的同学的名字。
时间: 2024-12-23 09:23:02 浏览: 40
你可以使用Python的列表推导式和匿名函数(lambda表达式)来完成这个任务。首先,需要计算原始得分列表的平均分,然后找出那些分数高于平均分的学生。以下是相应的代码:
```python
scores = ["张:85", "李: 86", "王: 92", "赵:78", "钱:73", "马:98"]
# 将名字和分数转换为字典列表
students = [{"name": name.split(":")[0], "score": int(score.split(":")[1])} for name, score in map(lambda x: x.split(":"), scores)]
# 计算平均分
average_score = sum(student["score"] for student in students) / len(students)
# 使用列表推导式筛选出高于平均分的学生
above_average_students = [student["name"] for student in students if student["score"] > average_score]
# 打印结果
print(above_average_students)
```
相关问题
已知六位同学的成绩:scores=["张:85","李: 86","王: 92","赵:78","钱:73","马:98"]使用列表生成器与匿名函数生成一个新的列表,这个列表显示高于平均成绩的同学的名字。
要使用列表生成器和匿名函数(也称为lambda函数)来完成这个任务,首先我们需要计算所有成绩的平均值,然后找出哪些分数高于平均值,并将对应的姓名加入新列表。以下是Python代码示例:
```python
scores = ["张:85", "李:86", "王:92", "赵:78", "钱:73", "马:98"]
# 解析成绩字符串并转换成元组(name, score)
score_list = [(name.split(':')[0], int(score.split(':')[1])) for name, score in map(str.split, scores)]
# 计算平均成绩
average_score = sum(score for _, score in score_list) / len(score_list)
# 使用列表生成器和匿名函数过滤出高于平均分的学生
result = [name for name, score in score_list if score > average_score]
# 输出结果
print(result)
```
用python写已知六位同学的成绩:scores=["张:85","李: 86","王: 92","赵:78","钱:73","马:98"]使用列表生成器与匿名函数生成一个新的列表,这个列表显示高于平均成绩的同学的名字。
可以使用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)
阅读全文
相关推荐

















