我的输入法存在问题,我试图得到一个由空格分隔的整数列表。我的代码如下:
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作为最低数字。谢谢你的帮助!
答案 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)
看起来它是通过将元素视为字符串来进行排序。你所描述的是词典排序,而不是数字排序。基本上你必须将你的字符串元素转换为数字元素。