Python對List的排序主要有兩種方法:一種是用sorted()函數,這種函數要求用一個變數接收排序的結果,才能實現排序;另一種是用List自帶的sort()函數,這種方法不需要用一個變數接收排序的結果.這兩種方法的參數都差不多,都有key和reverse兩個參數,sorted()多了一個排序對 ...
Python對List的排序主要有兩種方法:一種是用sorted()函數,這種函數要求用一個變數接收排序的結果,才能實現排序;另一種是用List自帶的sort()函數,這種方法不需要用一個變數接收排序的結果.這兩種方法的參數都差不多,都有key和reverse兩個參數,sorted()多了一個排序對象的參數.
1. List的元素是變數
這種排序比較簡單,直接用sorted()或者sort()就行了.
list_sample = [1, 5, 6, 3, 7] # list_sample = sorted(list_sample) list_sample.sort(reverse=True) print(list_sample)
運行結果:
[7, 6, 5, 3, 1]
2. List的元素是Tuple
這是需要用key和lambda指明是根據Tuple的哪一個元素排序.
list_sample = [('a', 3, 1), ('c', 4, 5), ('e', 5, 6), ('d', 2, 3), ('b', 8, 7)] # list_sample = sorted(list_sample, key=lambda x: x[2], reverse=True) list_sample.sort(key=lambda x: x[2], reverse=True) print(list_sample)
運行結果:
[('b', 8, 7),
('e', 5, 6),
('c', 4, 5),
('d', 2, 3),
('a', 3, 1)]
3. List的元素是Dictionary
這是需要用get()函數指明是根據Dictionary的哪一個元素排序.
list_sample = [] list_sample.append({'No': 1, 'Name': 'Tom', 'Age': 21, 'Height': 1.75}) list_sample.append({'No': 3, 'Name': 'Mike', 'Age': 18, 'Height': 1.78}) list_sample.append({'No': 5, 'Name': 'Jack', 'Age': 19, 'Height': 1.71}) list_sample.append({'No': 4, 'Name': 'Kate', 'Age': 23, 'Height': 1.65}) list_sample.append({'No': 2, 'Name': 'Alice', 'Age': 20, 'Height': 1.62}) list_sample = sorted(list_sample, key=lambda k: (k.get('Name')), reverse=True) # list_sample.sort(key=lambda k: (k.get('Name')), reverse=True) print(list_sample)
運行結果:
[{'No': 1, 'Name': 'Tom', 'Age': 21, 'Height': 1.75},
{'No': 3, 'Name': 'Mike', 'Age': 18, 'Height': 1.78},
{'No': 4, 'Name': 'Kate', 'Age': 23, 'Height': 1.65},
{'No': 5, 'Name': 'Jack', 'Age': 19, 'Height': 1.71},
{'No': 2, 'Name': 'Alice', 'Age': 20, 'Height': 1.62}]