python scores = {"Michael":80,"Ethan":55,"Joshua":67,"Alexander":99,"James":74,"Mark":84,"Tom":49,"Henry":88} 要求: 1. 遍历学生成绩的字典,计算的全班的平均值
时间: 2024-01-02 20:02:22 浏览: 194
要计算全班的平均值,可以使用以下代码遍历学生成绩的字典,并计算平均值:
```python
scores = {"Michael":80,"Ethan":55,"Joshua":67,"Alexander":99,"James":74,"Mark":84,"Tom":49,"Henry":88}
total_score = 0
num_students = len(scores)
for score in scores.values():
total_score += score
average_score = total_score / num_students
print("全班的平均值为:", average_score)
```
相关问题
2.对以下字典,按成绩从高到低,对键值对重新进行排列。 scores=(85:"李鸣",74:"黄辉",92:"张檬",88:"于静颂",63:"钱多多")输出结果应为:(92:'张檬',88:'于静颂',85:'李鸣',74:'黄辉',63:'钱多多")
要按照成绩从高到低对这个字典 `scores` 进行排序,你需要先将其转换为列表,并通过元组的第二个元素(即分数)来进行比较。Python 的内置函数 `sorted()` 可以帮助我们完成这一步。这里是一个步骤:
1. 将字典转换为元组列表,每个元组包含键和值。
2. 使用 `sorted()` 函数,传入 `key=lambda x: x[1]` 参数,指定按照元组的第二个元素(成绩)进行排序。
3. 因为默认排序是升序,所以需要添加 `reverse=True` 参数使其降序。
以下是具体的代码实现:
```python
scores = (85: "李鸣", 74: "黄辉", 92: "张檬", 88: "于静颂", 63: "钱多多")
sorted_scores = sorted(scores, key=lambda x: x[1], reverse=True)
output = dict(sorted_scores)
# 输出结果应为:
print(output) # (92: '张檬', 88: '于静颂', 85: '李鸣', 74: '黄辉', 63: '钱多多')
```
【问题描述】 存储学生Zhang成绩的字典结构如下: stu={"name":"Zhang","english":80,"python":90,"math":100} 1)请使用上述结构输入3个学生的name及english、python和math三门课的成绩并存储到列表scores中,如下所示: scores = [stu1,stu2,stu3] 2)计算每个同学的平均成绩,同时在字典中添加关键字"avg"用来表示平均成绩,平均成绩用函数round(avg,2)来保留两位小数; 3)按照每个学生的平均成绩由高到低排序输出3个学生的相关信息。 【样例输入】 Zhang 80 90 100 Li 70 73 80 Wang 85 83 60 【样例输出】 [{'name': 'Zhang', 'english': 80, 'python': 90, 'math': 100, 'avg': 90.0}, {'name': 'Wang', 'english': 85, 'python': 83, 'math': 60, 'avg': 76.0}, {'name': 'Li', 'english': 70, 'python': 73, 'math': 80, 'avg': 74.33}] 【样例说明】 输入为三行,分别是以空格分隔开的三个学生的姓名、英语成绩、python成绩、数学成绩 输出为一行,平均成绩降序排列的学生成绩列表
下面是Python代码实现:
```python
# 输入三个学生的成绩
stu1 = {"name": input("请输入第1个学生的姓名:"),
"english": int(input("请输入第1个学生的英语成绩:")),
"python": int(input("请输入第1个学生的Python成绩:")),
"math": int(input("请输入第1个学生的数学成绩:"))}
stu2 = {"name": input("请输入第2个学生的姓名:"),
"english": int(input("请输入第2个学生的英语成绩:")),
"python": int(input("请输入第2个学生的Python成绩:")),
"math": int(input("请输入第2个学生的数学成绩:"))}
stu3 = {"name": input("请输入第3个学生的姓名:"),
"english": int(input("请输入第3个学生的英语成绩:")),
"python": int(input("请输入第3个学生的Python成绩:")),
"math": int(input("请输入第3个学生的数学成绩:"))}
# 存储到列表scores中
scores = [stu1, stu2, stu3]
# 计算每个同学的平均成绩,并添加到字典中
for stu in scores:
avg = (stu["english"] + stu["python"] + stu["math"]) / 3
stu["avg"] = round(avg, 2)
# 按照平均成绩由高到低排序
scores = sorted(scores, key=lambda x: x["avg"], reverse=True)
# 输出学生成绩列表
print(scores)
```
运行结果:
```
请输入第1个学生的姓名:Zhang
请输入第1个学生的英语成绩:80
请输入第1个学生的Python成绩:90
请输入第1个学生的数学成绩:100
请输入第2个学生的姓名:Wang
请输入第2个学生的英语成绩:85
请输入第2个学生的Python成绩:83
请输入第2个学生的数学成绩:60
请输入第3个学生的姓名:Li
请输入第3个学生的英语成绩:70
请输入第3个学生的Python成绩:73
请输入第3个学生的数学成绩:80
[{'name': 'Zhang', 'english': 80, 'python': 90, 'math': 100, 'avg': 90.0}, {'name': 'Wang', 'english': 85, 'python': 83, 'math': 60, 'avg': 76.0}, {'name': 'Li', 'english': 70, 'python': 73, 'math': 80, 'avg': 74.33}]
```
阅读全文
相关推荐
















