2013-03-16 67 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] 
相關問題