2013-06-24 119 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的方法是從它的輸入創建了一個新的排序列表,並返回其內置函數。

相關問題