2016-08-31 35 views
-1

列表的每個子列表我有一列整數這樣:如何就地排序在Python

[[12, 62, 49, 17, 99, 33, 47, 94, 58, 97, 75, 9], [46, 86, 95, 61, 80, 96, 14, 3, 
43, 2, 22, 83], [54, 57, 52, 32, 87, 15, 18, 39, 8, 90, 56, 23, 84], [82, 30, 26, 
31, 88, 37, 45, 79, 77, 66, 40, 51, 72]] 

而且我希望有一個列表回,但每個子表代替這樣的排序:

[[9, 12, 17, 33, 47, 49, 58, 62, 75, 94, 97, 99], [2, 3, 14, 22, 43, 46, 61, 80, 
83, 86, 95, 96], [8, 15, 18, 23, 32, 39, 52, 54, 56, 57, 84, 87, 90],[26, 30, 31, 
37, 40, 45, 51, 66, 72, 77, 79, 82, 88]] 

我想過循環每個元素,並用element.sort()的輸出替換它,但返回None,因爲它在原地。有沒有一個lambda函數來做到這一點?

+5

'列表中的l:l.sort()'? - 'list.sort()'將直接執行一個就地排序的列表。 – birryree

+0

這是@birryree的最佳答案。爲什麼不把它作爲答案。它簡單而正確。 Lambda答案使用了我認爲不是pythonic方式的索引。另一個答案沒有排序。 (他改變了它,現在它!) –

回答

3
f = lambda lst: [lst[i].sort() for i in range(len(lst))].count(None) 

這將返回一些成功排序的列表。