鱼C论坛

 找回密码
 立即注册
查看: 2339|回复: 2

[已解决]自定义函数返回str,无法返回int

[复制链接]
发表于 2022-10-16 00:58:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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']在最后了
最佳答案
2022-10-16 01:25:42
让我先笑会,你的q[0]是人名,当然不能int(q[0])了,所以你只需要把函数里的q[1]改为int(q[1])就行。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-10-16 01:25:42 | 显示全部楼层    本楼为最佳答案   
让我先笑会,你的q[0]是人名,当然不能int(q[0])了,所以你只需要把函数里的q[1]改为int(q[1])就行。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-10-16 08:50:12 | 显示全部楼层
lassiter 发表于 2022-10-16 01:25
让我先笑会,你的q[0]是人名,当然不能int(q[0])了,所以你只需要把函数里的q[1]改为int(q[1])就行。

我晕死我自己明明需要成绩优先排序,函数里面写了[1]在前面,竟然格式化了[0] 我也是笑了哈哈哈

我就奇怪,因为我网上搜的也有return int(x)这个用法
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-14 23:16

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表