2013-06-24 83 views

回答

3

您可以使用
sorted_array = sorted([2,3,1])

+0

接受这个答案是因为它提供了我要求的单行程。分号不是必需的。 –

+0

哦,是啊,我的坏.. –

2
>>> [3, 2, 1].sort() 

它做这个排序列表对象,但作为参考(变量指向)到这个列表是的

数量,所以它是垃圾回收。(即我们不能访问此列表了)

回到第一个问题,list.sort()就地排序并返回None

>>> a = [3, 2, 1] 
>>> a.sort()  
>>> a 
[1, 2, 3] 

如果你想a留下来,因为它是用sorted和结果分配回一些变量。

>>> a = [3, 2, 1] 
>>> b = sorted(a) 
>>> b 
[1, 2, 3] 
>>> a 
[3, 2, 1] 
+0

无需调用垃圾回收或引用计数。 'list.sort'返回None,所以这个列表可能会永远存在。 – delnan

+0

'list.sort()'返回'None'而不是list,其中'b = [3,2,1] .sort()'会起作用吗? –

+1

@PaulJurczak python列表的所有就地修改操作都返回'None',没有必要返回正在被修改的同一个对象。如果你想要一个新的副本,请使用'sorted'。我写了一个与此相关的详细答案,您可能想阅读。 http://stackoverflow.com/questions/17141255/can-anyone-explain-why-this-sorting-wont-work/17141264#17141264 –

1

list.sort是梳理现有列表因此返回None

sorted的方法是从它的输入创建了一个新的排序列表,并返回其内置函数。

相关问题