首页 > 解决方案 > 排序方法返回不正确的输出

问题描述

所以我试图对一个数字列表进行排序,但是当我输入一个数字列表时,例如 48 35 32 5 5 16 5 16 28 29。它不会按预期排序。

我的代码:

def calculate():
    nums = input("Enter a number list: ")
    numsList = nums.split()
    sortedNums = sorted(numsList)
    print(sortedNums)

calculate()

因此,如果我输入这样的列表 48 35 32 5 5 16 5 16 28 29。它将返回

['16', '16', '28', '29', '32', '35', '48', '5', '5', '5']

代替

['5', '5', '5', '16', '16', '28', '29', '32', '35', '48']

有谁知道如何解决这一问题?

标签: pythonsortingmathnumbers

解决方案


您正在对字符串而不是数字进行排序,因此如果只允许整数,则按字典顺序获取它们,只需更改

sortedNums = sorted(numsList)

sortedNums = sorted(numsList, key=int)

如果允许使用浮点数,float而不是int.


推荐阅读