为了账号安全,请及时绑定邮箱和手机立即绑定

为什么 sort 没有按数字顺序返回这个列表?

为什么 sort 没有按数字顺序返回这个列表?

慕码人8056858 2021-09-01 10:58:06
当我尝试简单地整理出一些数字时,我在 Python 中使用此代码遇到以下问题,这是代码。array = input().split(" ")between_numbers = " <= ".join(sorted(array))print(between_numbers)有了这个给定的输入:-100 500 36724 -673 874 37 36 324 627 82 76537 -772 -936 2467 2365 -3763我懂了:-100 <= -3763 <= -673 <= -772 <= -936 <= 2365 <= 2467 <= 324 <= 36 <= 36724 <= 37 <= 500 <= 627 <= 76537 <= 82 <= 874而不是这个:-3763 <= -936 <= -772 <= -673 <= -100 <= 36 <= 37 <= 82 <= 324 <= 500 <= 627 <= 874 <= 2365 <= 2467 <= 36724 <= 76537有人能告诉我这是为什么以及如何解决吗?
查看完整描述

3 回答

?
米脂

TA贡献1836条经验 获得超3个赞

split给你一个字符串列表。默认情况下,字符串按字典顺序进行比较:

"a" < "aardvark" < "b"
"1" < "10" < "2"

如果您有一个numbers列表,或者您指定要int转换的排序键,则sorted可以执行您想要的操作。因此,要么

array = [int(x) for x in input().split(" ")]

或者

between_numbers = " <= ".join(sorted(array, key=int))


查看完整回答
反对 回复 2021-09-01
?
元芳怎么了

TA贡献1798条经验 获得超7个赞

将每个数字转换为整数然后排序

array = [int(i) for i in input.split(' ')]

您将根据数字而不是字符串获得排序列表(这在您的情况下发生)


查看完整回答
反对 回复 2021-09-01
?
互换的青春

TA贡献1797条经验 获得超6个赞

x = np.array([2, 1, 4, 3, 5]) np.sort(x) 你可以用这个


查看完整回答
反对 回复 2021-09-01
  • 3 回答
  • 0 关注
  • 238 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号