2

我的输入法有问题,我正在尝试获取以空格分隔的整数列表。我的代码如下:

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 作为最小数字。谢谢你的帮助!

4

3 回答 3

3

要对表示为字符串的整数列表进行排序,可以使用:

l.sort(key=int)

如果没有key=int,列表将按字典顺序排列。

但是,如果您需要做的只是找到最小的数字,那么更好的方法是

return min(l, key=int)

PS我已将您的列表重命名为lsince list()is a built-in name,并且隐藏内置名称的风格很差。

于 2013-03-16T22:48:13.527 回答
1

在对它们进行排序之前,您需要将列表中的值转换为 int:

numberList = input("Enter list of numbers seperated by spaces ").split()
numberList = [int(v) for v in numberList]
于 2013-03-16T22:48:59.387 回答
0

看起来它是通过将元素视为字符串来进行排序的。您描述的是字典顺序,而不是数字顺序。基本上,您必须将字符串元素转换为数字元素。

于 2013-03-16T22:48:51.763 回答