当我在14:20 - 14:30 通过Google Python Class Day 1 Part 2时,Guy说"不要使用list.sort".他还提到"恐龙使用它!" (即它是一种旧的排序方式).但他没有提到原因.
谁能告诉我为什么我们不应该使用list.sort?
因为list.sort()会进行就地排序.所以这改变了原始列表.但是sorted(list)会创建一个新列表而不是修改原始列表.
例:
>>> s = [1,2,37,4]
>>> s.sort()
>>> s
[1, 2, 4, 37]
>>> s = [1,2,37,4,45]
>>> sorted(s)
[1, 2, 4, 37, 45]
>>> s
[1, 2, 37, 4, 45]
Run Code Online (Sandbox Code Playgroud)
从https://wiki.python.org/moin/HowTo/Sorting:
您也可以使用
list.sort()列表的方法。它就地修改列表(并返回None以避免混淆)。通常它不如sorted()- 但如果您不需要原始列表,它的效率会更高一些。
许多人不喜欢改变变量的状态(查找不可变值/数据结构的优点),因此不喜欢像list.sort这样修改原始列表。