2013-03-16 43 views
2

我遇到了一个输入法问题,我试图获取由空格分隔的整数列表。我的代码如下:Python - 对Ints列表进行排序用户输入

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

'分钟(the_list,键= INT)'是你想要什么 – JBernardo 2013-03-16 22:49:59

回答

3

排序字符串表示的整数列表,可以使用:

l.sort(key=int) 

没有key=int,名单被责令lexicographically

但是,如果所有你需要做的是找到最小的数量,更好的办法是

return min(l, key=int) 

附:我已将l更名为l,因为list()built-in name,它隐藏了内置名称的风格。

+0

感谢您的帮助! – h1h1 2013-03-17 01:20:15

0

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

1

您需要值转换你的名单上诠释你对它们进行排序前:

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