当我在14:20 - 14:30经历Google Python Class Day 1 Part 2时,盖伊说"请勿使用While ArrCount>0 do
begin
Inc(P) ; // P is typed-Pointer
// do somethings
Dec(ArrCount);
end;
" 。他还提到"恐龙使用它!" (即它是一种旧的排序方式)。但他没有提到原因。
有谁可以告诉我为什么我们不应该使用list.sort
?
答案 0 :(得分:8)
因为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]
答案 1 :(得分:6)
我认为这是基于意见的,有时您需要更改原始列表并使用 .sort(),有时您不需要更改它,并且您使用排序()
一般情况下,使用.sort()
不错答案 2 :(得分:4)
来自https://wiki.python.org/moin/HowTo/Sorting:
您还可以使用列表的
list.sort()
方法。它修改了 就地列出(并返回None
以避免混淆)。通常它更少 方便于sorted()
- 但如果您不需要原始列表, 它的效率稍高。
许多人不喜欢改变变量的状态(查看不可变值/数据结构的优点),因此不希望像list.sort
那样修改原始列表。