python - 排序方法返回不正确的输出
问题描述
所以我试图对一个数字列表进行排序,但是当我输入一个数字列表时,例如 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']
有谁知道如何解决这一问题?
解决方案
您正在对字符串而不是数字进行排序,因此如果只允许整数,则按字典顺序获取它们,只需更改
sortedNums = sorted(numsList)
到
sortedNums = sorted(numsList, key=int)
如果允许使用浮点数,float
而不是int
.
推荐阅读
- python - 来自 YahooFinance 错误的价格数据:TypeError:timedelta 秒组件不支持的类型:NoneType
- python-3.x - WebKit2 和 DomDocument/JavaScriptCore (Python3)
- php - VueJS - 也在文本区域的开头和结尾提交换行符
- javascript - Javascript单例模式初始化值没有进入html文件
- redis - redis key expire show -1 即使设置为 900 秒
- mysql - MySQL - 我的请求的具体条件
- c# - 从 UWP 应用程序请求对文件夹的永久访问权限
- javascript - 在jquery的同一部分内定位不同的元素
- excel - Sub 在 VBA 中终止后,无模式的用户窗体会发生什么?
- excel - Excel vba删除Word中的空行