Python:为什么不可以这样:print list1.sort(),而是先:list1.sort()再print list1?

>>>list1=[3,2,5,6,1]
>>>print list1.sort()
None
>>>list1.sort()
>>>print list1
[1,2,3,5,6]
阅读 6.5k
6 个回答

因为List的sort方法返回的类型就是<type 'NoneType'>, 你这里print并不是list1.

>>> list1=[3,2,5,6,1]
>>> print type(list1.sort())
<type 'NoneType'>
新手上路,请多包涵

最近刚遇到这个问题,原因就是list1.sort()只是对list1里的元素进行排序,然后返回的是NoneType。如果要直接得到排好序的列表应该用sorted函数。

因为list.sort()的作用是将list的元素排序,而不是将list.sort()本身变成排序后的list

新手上路,请多包涵

因为sort没有返回值

可以使用sorted啊

>>> list1=[3,2,5,6,1]
>>> print sorted(list1)
[1, 2, 3, 5, 6]

sorted返回了一个新的list。sort原地排序。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题