没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
试读
2页
查找和排序 题目:输入任意(用户,成绩)序列,可以获得成绩从高到低或从低到高的排列,相同成绩都按先录入排列在前的规则处理。 示例: jack 70 peter 96 Tom 70 smith 67 从高到低 成绩 peter 96 jack 70 Tom 70 smith 67 从低到高 smith 67 jack 70 Tom 70 peter 96 输入描述: 输入多行,先输入要排序的人的个数,然后输入排序方法0(降序)或者1(升序)再分别输入他们的名字和成绩,以一个空格隔开
资源推荐
资源详情
资源评论
成绩排序(成绩排序(python))
查找和排序查找和排序
题目:输入任意(用户,成绩)序列,可以获得成绩从高到低或从低到高的排列,相同成绩都按先录入排列在前的规则处理。
示例:
jack 70
peter 96
Tom 70
smith 67
从高到低 成绩
peter 96
jack 70
Tom 70
smith 67
从低到高
smith 67
jack 70
Tom 70
peter 96
输入描述输入描述:
输入多行,先输入要排序的人的个数,然后输入排序方法0(降序)或者1(升序)再分别输入他们的名字和成绩,以一个空
格隔开
输出描述输出描述:
按照指定方式输出名字和成绩,名字和成绩之间以一个空格隔开
分析:分析:
用到的知识:
1.sorted函数(这是一个稳定的排序方法)
sorted( iterable, key, reverse)
(1)iterable:是可迭代类型的数据;
(2)key:用列表元素的某个属性和函数进行作为关键字,有默认值,迭代集合中的一项;(一般用key=lambda x:x[i] ,lambda
x:x[i] 是一个匿名函数,i为几就是第几个数字,如果是用的字典x[0]就是按照字典的key排序,x[1]就是按照字典的value排序 )
(3)reverse:排序规则. reverse = True 或者 reverse = False,有默认值,默认为升序排列False(即默认从小到大排序)
2.join()函数
'sep'.join(seq)
参数说明
sep:分隔符。可以为空
seq:要连接的元素序列、字符串、元组、字典
意思就是以sep作为分隔符,将seq所有的元素合并成一个新的字符串
比如 ’ ‘.join(new)就是以空格作为分隔符,将new里面的元素合并为一个新的字符串
正确代码正确代码
import math
import os
try:
while True:
n=int(input())
flag=int(input())
keys = [] for i in range(n):
s=str(input())
value = s.split(' ',1)
keys.append(value)
if(flag==0):
new=sorted(keys, key=lambda d: int(d[1]),reverse=True)
for i in range(n):
print(' '.join(new[i]))
else:
new=sorted(keys, key=lambda d: int(d[1]),reverse=False)
for i in range(n):
print(' '.join(new[i]))
except:
pass
错误写法分析:错误写法分析:
看到题目第一想法就是写字典,然后运行发现,采用字典的话,如果有相同名字的人,那么会前一个人的成绩会被后一个人覆
资源评论
- danlei782023-02-08资源是宝藏资源,实用也是真的实用,感谢大佬分享~
weixin_38741101
- 粉丝: 6
- 资源: 926
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功