python用二维列表方式来处理成绩数据(学号、语文、数学、外语、Python),内容如下所示,最后要求输出学号和平均成绩,按学号升序排列。
时间: 2024-11-15 10:23:29 浏览: 0
在Python中,你可以使用二维列表来存储学生的成绩数据,并结合字典或者pandas库方便地管理这种结构。假设你的数据结构如下:
```python
scores = [
{"学号": "001", "语文": 85, "数学": 92, "外语": 90, "Python": 88},
{"学号": "002", "语文": 90, "数学": 95, "外语": 88, "Python": 93},
# 更多学生...
]
```
为了计算每个学生的平均成绩并按学号排序,你可以这样做:
```python
# 导入pandas库,如果没有安装,可以使用pip install pandas
import pandas as pd
# 将二维列表转换为DataFrame
df_scores = pd.DataFrame(scores)
# 计算平均成绩
df_scores['平均成绩'] = df_scores.mean(axis=1)
# 按学号升序排序
df_sorted = df_scores.sort_values('学号')
# 只保留学号和平均成绩列
result = df_sorted[['学号', '平均成绩']].reset_index(drop=True)
# 输出结果
for index, row in result.iterrows():
print(f"学号:{row['学号']}, 平均成绩:{row['平均成绩']}")
相关问题
用二维数组输入学生的学好及语文 数学 英语成绩,然后输出学生各科成绩信息 平均成绩和总成绩
好的,以下是代码实现:
```python
# 定义一个空的二维数组,用于存放学生的成绩信息
scores = []
# 输入学生成绩信息
n = int(input("请输入学生的人数:"))
for i in range(n):
print("请输入第{}个学生的信息:".format(i+1))
s = input("学号:")
c = float(input("语文成绩:"))
m = float(input("数学成绩:"))
e = float(input("英语成绩:"))
scores.append([s, c, m, e]) # 将学生信息添加到二维数组中
# 输出学生成绩信息
for i in range(n):
print("学号:{},语文成绩:{},数学成绩:{},英语成绩:{}".format(scores[i][0], scores[i][1], scores[i][2], scores[i][3]))
# 计算每个学生的总成绩和平均成绩
for i in range(n):
total = sum(scores[i][1:]) # 计算总成绩
avg = total / 3 # 计算平均成绩
print("学号:{},总成绩:{},平均成绩:{}".format(scores[i][0], total, avg))
```
运行结果示例:
```
请输入学生的人数:2
请输入第1个学生的信息:
学号:001
语文成绩:80
数学成绩:90
英语成绩:85
请输入第2个学生的信息:
学号:002
语文成绩:75
数学成绩:85
英语成绩:90
学号:001,语文成绩:80.0,数学成绩:90.0,英语成绩:85.0
学号:002,语文成绩:75.0,数学成绩:85.0,英语成绩:90.0
学号:001,总成绩:255.0,平均成绩:85.0
学号:002,总成绩:250.0,平均成绩:83.33333333333333
```
输入学生的学好及语文 数学 英语成绩,然后输出学生各科成绩信息 平均成绩和总成绩 用二维数组
好的,以下是代码实现:
```python
# 定义一个2行3列的二维数组,存放学生的成绩信息
scores = [[0 for j in range(3)] for i in range(2)]
# 输入学生成绩信息
for i in range(2):
print("请输入第{}个学生的信息:".format(i+1))
scores[i][0] = input("学号:")
scores[i][1] = float(input("语文成绩:"))
scores[i][2] = float(input("数学成绩:"))
scores[i].append(float(input("英语成绩:"))) # 添加英语成绩到列表中
# 输出学生成绩信息
for i in range(2):
print("学号:{},语文成绩:{},数学成绩:{},英语成绩:{}".format(scores[i][0], scores[i][1], scores[i][2], scores[i][3]))
# 计算每个学生的总成绩和平均成绩
for i in range(2):
total = sum(scores[i][1:]) # 计算总成绩
avg = total / 3 # 计算平均成绩
print("学号:{},总成绩:{},平均成绩:{}".format(scores[i][0], total, avg))
```
运行结果示例:
```
请输入第1个学生的信息:
学号:001
语文成绩:80
数学成绩:90
英语成绩:85
请输入第2个学生的信息:
学号:002
语文成绩:75
数学成绩:85
英语成绩:90
学号:001,语文成绩:80.0,数学成绩:90.0,英语成绩:85.0
学号:002,语文成绩:75.0,数学成绩:85.0,英语成绩:90.0
学号:001,总成绩:255.0,平均成绩:85.0
学号:002,总成绩:250.0,平均成绩:83.33333333333333
```
阅读全文