python 成绩排序
时间: 2023-10-20 18:07:56 浏览: 131
可以用Python的sorted函数按照分数排序,例如:
```
scores = {'Alice': 80, 'Bob': 75, 'Charlie': 90, 'David': 85}
sorted_scores = sorted(scores.items(), key=lambda x: x[1], reverse=True)
print(sorted_scores)
```
输出结果为:
```
[('Charlie', 90), ('David', 85), ('Alice', 80), ('Bob', 75)]
```
相关问题
python成绩排序已有 5 名 学生的姓名和成绩用字典存放 现要求按照成绩从高到低输出学生的姓名和成绩
### 回答1:
可以使用Python的字典数据结构来存储学生的姓名和成绩,其中键为姓名,值为成绩。然后使用sorted()函数按照成绩从高到低对字典进行排序,并输出学生的姓名和成绩即可。
示例代码如下:
```python
students = {'张三': 80, '李四': 90, '王五': 70, '赵六': 85, '钱七': 95}
sorted_students = sorted(students.items(), key=lambda x: x[1], reverse=True)
for student in sorted_students:
print(student[0], student[1])
```
运行结果为:
```
钱七 95
李四 90
赵六 85
张三 80
王五 70
```
### 回答2:
Python成绩排序,需要将学生的姓名和成绩用字典方式存储,然后按照成绩从高到低的顺序输出学生姓名和成绩。我们可以使用Python内置的函数sorted()进行排序。
首先,我们需要将学生的姓名和成绩用字典方式存储,示例如下:
students = {"Tom":80, "David":95, "Lucy":72, "Jack":90, "Lily":68}
这里我们用字典方式存储了5名学生的姓名和成绩。
接下来,我们需要按照成绩从高到低的顺序输出学生姓名和成绩。我们可以使用sorted()函数,示例如下:
sorted_students = sorted(students.items(), key=lambda x:x[1], reverse=True)
这里我们使用了sorted()函数对字典进行排序,并使用了key参数来指定排序的关键字,即按照字典的value进行排序,而不是按照字典的key进行排序。另外,我们将reverse参数设置为True,表示按照从大到小的顺序进行排序。
最后,我们可以使用for循环按照从高到低输出学生姓名和成绩,示例如下:
for student in sorted_students:
print(student[0], student[1])
这里我们使用for循环遍历已排序的学生字典,并使用print()函数输出学生姓名和成绩。
综上,Python成绩排序可以使用字典方式存储学生姓名和成绩,然后使用sorted()函数进行排序,最后使用for循环输出学生姓名和成绩。
### 回答3:
假设已经有了如下的字典存放5名学生的姓名和成绩:
```
score_dict = {'Tom': 80, 'Jack': 95, 'Mary': 88, 'Michael': 92, 'Susan': 86}
```
我们可以使用Python的sorted函数将字典按照值进行排序,从而实现按照成绩从高到低输出学生的姓名和成绩的要求。
具体实现方式如下:
```
# 对字典按照value排序,并返回由键-值元组组成的列表
sorted_scores = sorted(score_dict.items(), key=lambda x: x[1], reverse=True)
# 输出排名结果
rank = 1
for name, score in sorted_scores:
print(f"第{rank}名:{name},成绩为{score}")
rank += 1
```
其中,sorted函数的key参数使用lambda表达式指定按照字典的值(即成绩)进行排序,reverse参数指定倒序排列。
程序输出如下:
```
第1名:Jack,成绩为95
第2名:Michael,成绩为92
第3名:Mary,成绩为88
第4名:Susan,成绩为86
第5名:Tom,成绩为80
```
通过以上实现,我们就能够按照成绩从高到低输出学生的姓名和成绩了。
def sort(): # 成绩排序 show() # 显示学生信息列表 if os.path.exists(filename): with open(filename, 'r', encoding = 'UTF-8') as r_file: stu_list = r_file.readlines() stu_new = [] for i in stu_list: d = dict(eval(i)) stu_new.append(d) else: return asc_or_desc = input('请选择(0.升序 1.降序):') if asc_or_desc == '0': asc_or_desc_bool = False # 升序标记 elif asc_or_desc == '1': asc_or_desc_bool = True # 降序标记 else: print('输入错误!') m = input('请选择排序方式:(1.按英语成绩排序 2.按python成绩排序 3.按数学成绩排序 4.按数据结构成绩排序 0.按总成绩排序):') if m == '1': # 按英语成绩排序 stu_new.sort(key = lambda x:int(x['english']), reverse = asc_or_desc_bool) elif m == '2': # 按python成绩排序 stu_new.sort(key = lambda x:int(x['python']), reverse = asc_or_desc_bool) elif m == '3': # 按数学成绩排序 stu_new.sort(key = lambda x:int(x['math']), reverse = asc_or_desc_bool) elif m == '4': # 按数据结构成绩排序 stu_new.sort(key = lambda x:int(x['data']), reverse = asc_or_desc_bool) elif m == '0': # 按总成绩排序 stu_new.sort(key = lambda x:int(x['english']) + int(x['python']) + int(x['math']) + int(x['data']), reverse = asc_or_desc_bool) else: print("输入有误!") show_stu(stu_new)写出上面这段代码的伪代码
定义一个函数sort,没有输入参数
调用show函数,展示学生信息列表
如果文件存在,则打开文件
将文件内容按行读入到列表stu_list中
定义一个空列表stu_new
遍历stu_list中的每个元素i,使用eval函数将其转换为字典类型d
将d添加到stu_new列表中
否则返回
获取排序方式,升序或降序
如果输入不合法,则提示错误
获取排序方式,按照英语成绩、Python成绩、数学成绩、数据结构成绩或总成绩排序
如果输入不合法,则提示错误
根据所选的排序方式,对stu_new列表进行排序,使用lambda表达式指定排序方式和排序顺序
调用show_stu函数,展示排序后的stu_new列表
阅读全文