Python - 排序Ints用户输入列表

时间:2013-03-16 22:46:41

标签: python input

我的输入法存在问题,我试图得到一个由空格分隔的整数列表。我的代码如下:

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 :(得分:3)

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

l.sort(key=int)

如果没有key=int,则会对列表进行排序lexicographically

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

return min(l, key=int)

P.S。我已将您的列表重命名为l,因为list()built-in name,并且影响内置名称的风格很差。

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

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