You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中该排序示例为何结果不符?技术问询

为什么Python列表排序结果不符合预期?

嘿,这个问题我之前也踩过坑!咱们来一步步拆解:

首先你执行的代码是这样的:

>>> a = ['7','30','41','14','39','42']
>>> a.sort()
>>> a
['14', '30', '39', '41', '42', '7']

但你预期的结果是['7', '14', '30', '39', '41', '42'],对吧?

问题根源

问题出在元素的类型上:你的列表里全是字符串(str类型),而Python默认的sort()方法对字符串采用的是字典序排序(也就是按字符的ASCII值逐个比较)。

举个具体的例子:比较'14'和'7'时,会先对比第一个字符——'1'的ASCII码是49,'7'是55,49比55小,所以'14'就排在了'7'的前面,完全不管整个字符串对应的数值大小。

解决办法

如果想要按照数值大小排序,只需要给sort()方法传入key参数,指定排序时把每个元素转换成整数再比较:

>>> a = ['7','30','41','14','39','42']
>>> a.sort(key=int)
>>> a
['7', '14', '30', '39', '41', '42']

这样就得到你想要的结果啦!

内容的提问来源于stack exchange,提问作者raiyan22

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:32:43