Python - 排序用户输入的整型列表

2 投票
3 回答
9237 浏览
提问于 2025-04-17 19:21

我在使用输入方法时遇到了一些问题,我想得到一个用空格分开的整数列表。我的代码如下:

def numberStore():
    numberList = input("Enter list of numbers seperated by spaces ").split(" ")
    print("The lowest number is" , listLowestNumber(numberList))

然后我有一个函数,用来返回输入列表中最小的数字。

def listLowestNumber(list):
    list.sort()
    return list[0]

但是当我执行这个叫做 numberStore 的函数时,它似乎只根据第一个数字来排序。例如,输入值 40 9 50 时,它会返回 40 作为最小的数字。谢谢大家的帮助!

3 个回答

0

看起来它是把元素当作字符串来排序的。你所说的排序方式是字典顺序,而不是数字顺序。简单来说,你需要把你的字符串元素转换成数字元素。

1

在你排序之前,需要先把列表里的值转换成整数(int):

numberList = input("Enter list of numbers seperated by spaces ").split()
numberList = [int(v) for v in numberList]
3

如果你想对一串用字符串表示的整数进行排序,可以使用:

l.sort(key=int)

如果不加上 key=int,那么这个列表会按照字典顺序进行排序,具体可以参考字典序

不过,如果你只是想找出最小的数字,使用下面的方法会更好:

return min(l, key=int)

顺便说一下,我把你的列表改名为 l,因为 list() 是一个内置名称,用内置名称作为变量名是不太好的习惯。

撰写回答