>>> a = [5,2,1,9,6]
>>> a.sort() #默認從小到大
>>> a
[1, 2, 5, 6, 9]
>>> a.sort(reverse=True) #reverse後從大到小
>>> a
[9, 6, 5, 2, 1]
>>> a = [5,2,1,9,6]
>>> b = sorted(a)
>>> b
[1, 2, 5, 6, 9] #a是原對象,b是排序後的對象
>>> a
[5, 2, 1, 9, 6]
>>> b=sorted(a,reverse=True)
>>> b
[9, 6, 5, 2, 1]
>>> a
[5, 2, 1, 9, 6]
>>> a = ['aa','BB','bb','zz','CC']
>>> sorted(a)
['BB', 'CC', 'aa', 'bb', 'zz']
>>> sorted(a,reverse=True)
['zz', 'bb', 'aa', 'CC', 'BB']
a = ['CCC', 'bb', 'ffff', 'z']
>>> sorted(a,key=len) #按字符串個數排序
['z', 'bb', 'CCC', 'ffff']
>>> sorted(a,key=str.lower) #將字符串轉爲小寫之後排序
['bb', 'CCC', 'ffff', 'z']
>>> a=[{'age': 20, 'name': 'abc'}, {'age': 25, 'name': 'ghi'}, {'age': 30, 'name': 'def'}]
>>> sorted(a,key =lambda x:x['age']) #按年齡排序
[{'age': 20, 'name': 'abc'}, {'age': 25, 'name': 'ghi'}, {'age': 30, 'name': 'def'}]
3、argsort,屬於numpy中的函數a=array([(5,4,3,2,6),(7,8,0,1,9)])
>>> a
array([[5, 4, 3, 2, 6],
[7, 8, 0, 1, 9]])
>>> a.argsort()
array([[3, 2, 1, 0, 4],
[2, 3, 0, 1, 4]], dtype=int64)
>>> a.argsort(axis=0)
array([[0, 0, 1, 1, 0],
[1, 1, 0, 0, 1]], dtype=int64)
這裏要明白numpy下數組的排列:介紹三維數組,
[[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
[[12 13 14 15]
[16 17 18 19]
[20 21 22 23]]]
- 最後的軸從左到右打印
- 次後的軸從頂向下打印
- 剩下的軸從頂向下打印,每個切片通過一個空行與下一個隔開。
- 一維數組被打印成行,二維數組成矩陣,三維數組成矩陣列表。
[[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
[[12 13 14 15]
[16 17 18 19]
[20 21 22 23]]]
a=array([arange(24)]).reshape(2,3,4)
>>> a.argsort()
array([[[0, 1, 2, 3], #按行排序
[0, 1, 2, 3],
[0, 1, 2, 3]],
[[0, 1, 2, 3],
[0, 1, 2, 3],
[0, 1, 2, 3]]], dtype=int64)
>>> a.argsort(-1)
array([[[0, 1, 2, 3], #還是按行
[0, 1, 2, 3],
[0, 1, 2, 3]],
[[0, 1, 2, 3],
[0, 1, 2, 3],
[0, 1, 2, 3]]], dtype=int64)
>>> a.argsort(axis=0)
array([[[0, 0, 0, 0], #按第三軸
[0, 0, 0, 0],
[0, 0, 0, 0]],
[[1, 1, 1, 1],
[1, 1, 1, 1],
[1, 1, 1, 1]]], dtype=int64)
>>> a.argsort(axis=1)
array([[[0, 0, 0, 0], #按列0<4<8
[1, 1, 1, 1],
[2, 2, 2, 2]],
[[0, 0, 0, 0],
[1, 1, 1, 1],
[2, 2, 2, 2]]], dtype=int64)
>>>
參考:http://tech.ddvip.com/2013-02/1361016871190339.html