2013-11-25 57 views
2

我有一個列表,我想對這個列表進行排序,並將它從函數返回一行。python如何在一行中排序列表並返回它

我試過list1.sort()的回報,但輸出是None,而不是list1排序。

有沒有一種方法來排序列表並返回一行?

+7

那裏有一個內建函數...'sorted' ... – mgilson

+0

爲什麼這個表決被認爲沒有表現出最小的理解?這個問題說明了所用的代碼,實際的回報價值和預期的回報價值,並提出了明確的問題。很明顯,這裏至少對這個問題有最少的理解。 –

+0

爲什麼要求它是一條線?當然,在這種情況下,要求很容易滿足,但仍然......你打代碼高爾夫球嗎? –

回答

5

使用排序。

>>>x = ["c","b","1"] 
>>>sorted(x) 
["1","b","c"] 

x.sort()應該返回None,因爲那是多麼方法sort工作。使用x.sort()將對x進行排序,但不會返回任何內容。

更多排序方式請看here

+2

如果你想改善你的答案,你可以指出OP *爲什麼* list1.sort()應該返回'沒有'正常的Python公約。 – mgilson

2

通常你會說

sorted(list1)    # returns a new list that is a sorted version of list1 

但是有時候,你的排序是就地,因爲其他東西都引用該列表

list1.sort()返回None,那麼你的選擇是

list1[:] = sorted(list1) # still makes a temporary list though 

sorted(list1) or list1  # always ends up evaluating to list1 since None is Falsey 
相關問題