Python中对列表进行sort排序后得到None?

如下所示,为啥我使用列表(list)对象的内置方法sort进行排序后,返回结果为None,而并非是排序好的列表呢?

>>> my_list = [ 1, 9, 9, 0 ]
>>> sorted_list = my_list.sort()
>>> print sorted_list
None


喜欢这个问题 | 分享 | 新建回答

回答

jerkzhang

Mar 5, 2019
1 赞

哈哈,因为你弄错了,使用该列表对象的sort方法,该对象就已经排序好了,你排序好的列表对象就是原始列表对象,即my_list这个变量。这个小错误,很多初学者都会犯的;正确的方法如下所示:

>>> my_list = [ 1, 9, 9, 0 ]
>>> my_list.sort()
>>> print my_list
[0, 1, 9, 9]



如果真要想既保存原始列表,又获得排序后的列表结果;那就使用python的内置函数sorted即可。

>>> my_list = [ 1, 9, 9, 0 ]
>>> sorted_list = sorted( my_list )
>>> sorted_list
[0, 1, 9, 9]
>>> my_list
[1, 9, 9, 0]