1. 程式人生 > >Python中的sort()方法使用基礎

Python中的sort()方法使用基礎

一、基本形式

sorted(iterable[, cmp[, key[, reverse]]])

iterable.sort(cmp[, key[, reverse]])

 引數解釋:

 (1)iterable指定要排序的list或者iterable,不用多說;

 (2)cmp為函式,指定排序時進行比較的函式,可以指定一個函式或者lambda函式,如:

       students為類物件的list,沒個成員有三個域,用sorted進行比較時可以自己定cmp函式,例如這裡要通過比較第三個資料成員來排序,程式碼可以這樣寫:

12students = [('john''A'15), ('jane'
'B'12), ('dave''B'10)]sorted(students, key=lambda student : student[2])

(3)key為函式,指定取待排序元素的哪一項進行排序,函式用上面的例子來說明,程式碼如下:

1sorted(students, key=lambda student : student[2])

       key指定的lambda函式功能是去元素student的第三個域(即:student[2]),因此sorted排序時,會以students所有元素的第三個域來進行排序。

二、普通用法:

 1.原址排序

1)列表有自己的sort方法,其對列表進行原址排序,既然是原址排序,那顯然元組不可能擁有這種方法,因為元組是不可修改的。

123= [462179]x.sort()print # [1, 2, 4, 6, 7, 9]

2.副本排序

1)[:]分片方法

12345=[462179]= x[ : ]y.sort()print #[1, 2, 4, 6, 7, 9]print #[4, 6, 2, 1, 7, 9]

注意:y = x[:] 通過分片操作將列表x的元素全部拷貝給y,如果簡單的把x賦值給y:y = x,y和x還是指向同一個列表,並沒有產生新的副本。

2)sorted方法

sorted返回一個有序的副本,並且型別總是列表,如下:

1234=[462
179]= sorted(x)print #[1, 2, 4, 6, 7, 9]print #[4, 6, 2, 1, 7, 9] 
1print sorted('Python'#['P', 'h', 'n', 'o', 't', 'y']

三、高階用法

1.自定義cmp比較函式

12345678910111213def comp(x, y):if