python 多維陣列的排序

2021-06-21 11:33:49 字數 1218 閱讀 6548

這幾天寫php程式,發現php裡有乙個array_multisort()函式十分好用,可以輕鬆對多維陣列進行排序,查了查python的相關資料,視乎沒有乙個比較直接的函式來完成多維陣列的排序

單個陣列的排序很簡單,直接用sort就能完成,如一下ipython**:

in [39]: array = [4, 2, 5, 1, 3]

in [40]: array.sort()

in [41]: array

out[41]: [1, 2, 3, 4, 5]

多維陣列的排序如直接用sort講會按第一維的資料進行排序,如:

in [42]: array = [ ['b', 4], ['e', 2], ['a', 5], ['d', 1], ['c', 3] ]

in [43]: array.sort()

in [44]: array

out[44]: [ ['a', 5], ['b', 4], ['c', 3], ['d', 1], ['e', 2] ]

如何按第二維的資料進行排序呢,我們可以用sort函式中的key形參,**接上,如:

in [45]: array.sort(key=lambda x:x[1])#lambda x:x[1]返回list的第二個資料

in [46]: array

out[46]: [ ['d', 1], ['e', 2], ['c', 3], ['b', 4], ['a', 5] ]

也可以用乙個函式實現,比較直接,如:

in [55]: def sort(a):

....:     for k in xrange(len(a)):

....:         (a[k][0], a[k][1]) = (a[k][1], a[k][0])

....:     a.sort()

....:     for k in xrange(len(a)):

....:         (a[k][0], a[k][1]) = (a[k][1], a[k][0])

....: 

in [56]: array = [ ['b', 4], ['e', 2], ['a', 5], ['d', 1], ['c', 3] ]

in [57]: sort(array)

in [58]: array

out[58]: [ ['d', 1], ['e', 2], ['c', 3], ['b', 4], ['a', 5] ]

多維陣列排序

在專案的開發應用中,我們幾乎是一直在和陣列打交道。常用的陣列函式有sort ksort 等相關函式,使用它們可以很方便的處理一維陣列,比如按鍵值降序和公升序的排列。但這些函式不是很方便的處理多維陣列。a array array sky blue array tree green 這是乙個簡單的二維陣...

多維陣列排序

purpose 二維陣列排序 method name array sort parameters array array 要排序的二維陣列 string row 排序依據列 string type 排序型別 asc or desc return array array temp 排好序的陣列 fun...

python 實現多維陣列 array 排序

關於多維陣列如何復合排序 如陣列 import numpy a程式設計客棧s np data np.array 2,2,5 2,1,3 1,2,3 3,1,4 data array 2,2,5 2,1,3 1,2,3 3,1,4 將陣列先按照第一列公升序,第二列公升序,第三列公升序的方式排序 ide...