2

入力方法に問題があります。スペースで区切られた int のリストを取得しようとしています。私のコードは以下の通りです:

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は組み込みの名前なlので、リストの名前を に変更しました。組み込みの名前をシャドウするのはスタイルが悪いです。list()

于 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 に答える