为什么print(list.sort())的结果是None?
在学习如何使用类、对象和方法的时候,有人想知道为什么 print(list.sort())
这个写法不一样于先执行 list.sort()
然后再执行 print(list)
。
list = [5, 1, 2]
print(list.sort())
#输出是 None
而不是:
list.sort()
print(list)
#输出是 [1, 2, 5]
上面的解释是:我原本以为 print(list.sort())
会输出一个排序好的列表,而不是 None
。
2 个回答
1
list.sort()
这个方法不会返回任何值。也就是说,当你写 print(list.sort())
时,它会输出 None
,因为 None
表示没有值。
2
正如你在list.sort的文档中看到的
这个方法会直接在原来的列表上进行排序,这样可以节省空间,特别是当你要排序一个很大的列表时。为了提醒用户这个方法是通过改变原来的列表来实现的,它不会返回一个新的排序后的列表(如果你想要一个新的排序列表,可以使用sorted()这个方法)。
(加粗的文字是我自己加的)