为什么print(list.sort())的结果是None?

0 投票
2 回答
35 浏览
提问于 2025-04-11 21:59

在学习如何使用类、对象和方法的时候,有人想知道为什么 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()这个方法)。

(加粗的文字是我自己加的)

撰写回答