存储学生张三成绩的字典结构如下: d={"name":"张三","english":80,"python":90,"math":100}1)请使用上述结构输入5个学生的name及english、python和math三门课的成绩并存储到列表scores中; 2)计算每个同学的平均成绩,同时在字典中添加关键字"avg"用来表示平均成绩; 3)按照每个学生的平均成绩由高到低排序输出5个学生的相关信息。
时间: 2023-07-07 18:12:40 浏览: 1514
好的,这是您的问题:
1. 首先,我们可以创建一个空的列表scores,然后使用循环将5个学生的信息添加到scores中,每个学生的信息都是一个字典,包含name、english、python和math四个键值对。代码如下:
```python
scores = []
for i in range(5):
name = input("请输入学生姓名:")
english = int(input("请输入英语成绩:"))
python = int(input("请输入Python成绩:"))
math = int(input("请输入数学成绩:"))
d = {"name": name, "english": english, "python": python, "math": math}
scores.append(d)
```
2. 然后,我们可以对每个学生的成绩求平均值,并将平均值添加到字典中。代码如下:
```python
for d in scores:
avg = (d["english"] + d["python"] + d["math"]) / 3
d["avg"] = avg
```
3. 最后,我们可以使用sorted函数对scores中的字典进行排序,排序的依据是avg键的值。代码如下:
```python
sorted_scores = sorted(scores, key=lambda x: x["avg"], reverse=True)
for d in sorted_scores:
print("姓名:{},英语成绩:{},Python成绩:{},数学成绩:{},平均成绩:{}".format(d["name"], d["english"], d["python"], d["math"], d["avg"]))
```
完整代码如下:
```python
# 定义空列表scores
scores = []
# 使用循环输入5个学生的信息
for i in range(5):
name = input("请输入学生姓名:")
english = int(input("请输入英语成绩:"))
python = int(input("请输入Python成绩:"))
math = int(input("请输入数学成绩:"))
# 创建包含学生信息的字典d,并添加到列表scores中
d = {"name": name, "english": english, "python": python, "math": math}
scores.append(d)
# 计算每个学生的平均成绩,并添加到字典中
for d in scores:
avg = (d["english"] + d["python"] + d["math"]) / 3
d["avg"] = avg
# 按照每个学生的平均成绩由高到低排序输出相关信息
sorted_scores = sorted(scores, key=lambda x: x["avg"], reverse=True)
for d in sorted_scores:
print("姓名:{},英语成绩:{},Python成绩:{},数学成绩:{},平均成绩:{}".format(d["name"], d["english"], d["python"], d["math"], d["avg"]))
```
阅读全文