为什么不应该在python中使用list.sort
当我在14:20-14:30的时候,那个家伙说“不要使用为什么不应该在python中使用list.sort,python,sorting,Python,Sorting,当我在14:20-14:30的时候,那个家伙说“不要使用list.sort”。他还提到“恐龙使用它!”(也就是说,这是一种古老的排序方式)。但他没有提到原因 有谁能告诉我为什么我们不应该使用list.sort?,因为list.sort()将执行就地排序。因此,这将更改原始列表。但是sorted(list)将创建一个新列表,而不是修改原始列表 例如: >>> s = [1,2,37,4] >>> s.sort() >>> s [1, 2, 4,
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]
我认为它非常基于意见,有时需要更改原始列表,然后使用.sort(),有时不需要更改,然后使用sorted() 一般来说,从以下位置使用.sort()并不坏: 您还可以使用列表的
list.sort()
方法。它修改了
就地列出(并返回None
,以避免混淆)。通常比较少
比排序更方便。-但是如果您不需要原始列表,
效率稍微高一点
许多人不喜欢更改变量的状态(查找不可变值/数据结构的优点),因此不喜欢像
list.sort
那样修改原始列表。谢谢您的回复。使用它还有其他缺点吗?@Laxmikant我不认为进行就地排序是一个缺点,它更有效(根据python文档),而且如果您有一个非常大的列表,这可能是唯一的方法。一个“真正”的缺点是它只为list
定义,而sorted
对任何iterable
都有效,所以如果有一天你决定需要使用列表以外的东西,你会被卡住:)@Holt-谢谢你的回答,那些喜欢不可变数据结构的人肯定会使用元组,不是一个列表
?同意,但您正在使用其他人的代码,并且希望产生最小的影响,它仍然适用。