私は彼らのスコアに基づいて多くの人々を並べ替えて、トップ3人とそのスコアをプリントアウトしようとしています。このpythonリストを番号でソートするにはどうすればいいですか?
List = ['A 3.0', 'B 4.0', 'C 13.0'] #My list
Sorted = sorted(List, key = lambda item:item.split(" ")[1], reverse = True) #Sorting script
print("Top three scorers and their average goal scores.", "\n", Sorted[0], "\n", Sorted[1], "\n", Sorted[2]) #Printing function
をしかし、私はそれを実行すると、それはこの印刷します:今のところはこのようになります
B 4.0
A 3.0
C 13.0
しかし、'13 .0' は3.0 『と『4.0』全くより小さいではありません』。私は実際の最高の数字がトップになるようにしたい、誰でも答えを持っている、私は 'python 3.4.4'を使っている。
別の文字のように'13 'で' 1 'と' 3 'でソートされていると思っていますが、修正方法はわかりません。
これはアルファベット順にソートしているため、文字列をint(item.split( "")[1])の数値に変換するためです。 – Gusman
@Gusman、float? – SilentMonk
@SilentMonkはい、そうです、それは浮動小数点(float)でなければなりません。番号について考えていただけです。int:P – Gusman