|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 jcpython2 于 2022-10-16 01:01 编辑
我的代码是对比输入数据['人名',分数],相同分数就对比人名,然后排序输出,结果1-99都能正常从大到小输出,错处是100被认为是最小放到了最后
然后我开始排查(代码11行-13行)发现自定义函数返回的值是str,变成了 str100 对比 str99,所以100分变成了排最后,我尝试把自定义函数的q[0]改为int(q[0])但报错
- def p(q):
- return q[1],q[0]
- n = int(input())
- list = []
- for i in range(n):
- x = input().split()
- list.append(x)
- list.sort(key=p,reverse=True)
- print(list[13][1],'----对比----',list[0][1])
- print(list[13][1] > list[0][1])
- print(type(list[13][1]),type(list[0][1]))
复制代码
输入内容:
- 14
- Zed 71
- Ada 92
- Caty 62
- Chrome 73
- Peter 71
- Melody 38
- Tina 37
- Gabby 99
- Lucy 100
- Kim 56
- Aomica 71
- Lee 56
- Wong 87
- July 17
复制代码
不正确的输出结果:
- 100 ----对比---- 99
- False
- <class 'str'> <class 'str'>
- [['Gabby', '99'], ['Ada', '92'], ['Wong', '87'], ['Chrome', '73'], ['Zed', '71'], ['Peter', '71'], ['Aomica', '71'], ['Caty', '62'], ['Lee', '56'], ['Kim', '56'], ['Melody', '38'], ['Tina', '37'], ['July', '17'], ['Lucy', '100']]
复制代码
['Lucy', '100']在最后了
让我先笑会,你的q[0]是人名,当然不能int(q[0])了,所以你只需要把函数里的q[1]改为int(q[1])就行。
|
|