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