考虑两个列表:
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)
