python 陣列排序

2021-09-11 23:00:27 字數 1474 閱讀 1448

單個陣列的排序很簡單,直接用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] ]

--------------------- 

>>> arr=[ [1 ,3 ] , [2,3] , [3,1]]

>>> arr.sort() 預設根據第一列排序

>>> arr

[[1, 3], [2, 3], [3, 1]]

>>> arr.sort(key=lambda x:x[1]) #對第二列排序

>>> arr

[[3, 1], [1, 3], [2, 3]]

>>> arr.sort(key=lambda x:x[1],reverse=true) #逆序

>>> arr

[[1, 3], [2, 3], [3, 1]]

python 陣列排序

python對容器內資料的排序有兩種,一種是容器自己的sort函式,一種是內建的sorted函式。sort函式和sorted函式唯一的不同是,sort是在容器內排序,sorted生成乙個新的排好序的容器 1 陣列排序 l 5,2,3,1,4 sort l.sort 公升序,l.reverse 降序 ...

陣列排序 python

本關挑戰任務是對乙個陣列進行排序,排序需要遵守一些規則 先對陣列從左到右,相鄰元素進行比較,如果第乙個比第二個大,就交換它們,進行乙個公升序排序 再對陣列從右到左,相鄰元素進行比較,如果第乙個比第二個小,就交換它們,進行乙個降序排序 以此類推,持續的 依次的改變排序的方向,並不斷縮小沒有排序的陣列範...

Python 陣列排序

argsort函式返回的是陣列值從小到大的索引值 公升序排列 一維 in 1 import numpy as np in 2 x np.array 1,3,2,5,4 in 3 np.argsort x out 3 array 0,2,1,4,3 in 4 x np.argsort x out 4 ...