gpt4 book ai didi

python - 当我的代码对输入进行排序时,为什么它在某些情况下不起作用?

转载 作者:太空宇宙 更新时间:2023-11-03 12:41:26 25 4
gpt4 key购买 nike

我是 Python 新手。首先,代码应该接受一个输入(以“x/y/z”的形式,其中 x、y 和 z 是任何正整数)并将其分成三个不同的变量。

input = raw_input()
a, b, c = input.split("/", 2)

我希望我的代码的第二部分采用这三个变量并根据它们的数值对它们进行排序。

order = [a, b, c]
print order
order.sort()
print order

虽然这对大多数输入都非常有效,但我发现对于输入“23/9/2”和“43/8/2”,输出未排序,因此未按正确顺序返回。关于可能导致这些输入不起作用的任何想法?

最佳答案

问题在于您正在对字符串进行排序,并期望它们像整数一样进行排序。如果您想要数字排序,请先将您的字符串列表转换为整数列表。

>>> sorted(['23', '9', '2'])
['2', '23', '9']
>>> sorted(map(int, ['23', '9', '2']))
[2, 9, 23]

这是重写代码的方法:

input = raw_input()
a, b, c = map(int, input.split("/", 2))
order = [a, b, c]
print order
order.sort()
print order

如果您需要将它们转换回字符串,只需使用map(str, order)。请注意,在 Python 2.x 上 map() 返回一个列表,在 3.x 上它将返回一个生成器。

关于python - 当我的代码对输入进行排序时,为什么它在某些情况下不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10903164/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com