为什么不在python中使用list.sort

时间:2015-08-20 07:24:08

标签: python sorting

当我在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

3 个答案:

答案 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那样修改原始列表。