Skip to main content
 首页 » 编程设计

python之与 python 中的 list.sort() 混淆

2025年05月04日12zhenyulu

考虑两个列表:

list1=[-4,-5,-3] 
list2=['-4','-5','-3'] 

现在如果我们使用

list1.sort() 
list2.sort() # in python3  

我们得到了相互矛盾的结果:

[-5, -4, -3] 
['-3', '-4', '-5']` 

为什么会这样,我们怎样才能正确地做到这一点!?

请您参考如下方法:

list1 排序非常容易理解,因为它只是按数字对数字进行排序。

在 list2 中,值存储为字符串。所以它是根据 ASCII 值对它们进行比较和排序。数字 3 的 ASCII 值为 51,4 的值为 52,5 的值为 53。所以它完全正确地工作,如果你想对单词进行排序,这就是你想要的方式。

但是,如果您只是想以正确的顺序对数字进行排序,请确保它们是 int,例如 list1。或者您可以在 sort 方法中设置键,将它们转换为 int,这样它就可以像这样以数字方式排序:

list2.sort(key=int)