列表
正向排序
sort()
>>> list=[1,6,3,4,5,2] >>> list.sort() >>> list [1, 2, 3, 4, 5, 6]
sorted()
>>> sorted([1,6,3,4,5,2]) [1, 2, 3, 4, 5, 6]
sort與sorted區別
sort是永久的,而sorted是臨時的。
逆向排序
sort()
>>> list=[1,6,3,4,5,2] >>> list.sort(reverse=True) >>> list [6, 5, 4, 3, 2, 1]
sorted()
>>> sorted([1,6,3,4,5,2],reverse=True) [6, 5, 4, 3, 2, 1]
反轉排序
reverse()
>>> list=[1,6,3,4,5,2] >>> list.reverse() >>> list [2, 5, 4, 3, 6, 1]
切片方法
>>> list=[1,6,3,4,5,2] >>> list[::-1] [2, 5, 4, 3, 6, 1]
多層列表排序
#對列表的第二個元素排序
>>> list=[('b',6),('a',1),('c',3),('d',4)] >>> list.sort(key=lambda x:x[1]) >>> list [('a', 1), ('c', 3), ('d', 4), ('b', 6)]
#對列表的第二個元素排序后,再對第一個元素排序
>>> list=[('b',1),('a',1),('c',3),('d',4)] >>> list.sort(key=lambda x:(x[1],x[0])) >>> list [('a', 1), ('b', 1), ('c', 3), ('d', 4)]
元組
元組排序可通過list函數將元組轉換成列表,采用列表排序方法即可。
元組列表間轉換方法:
list1=[1,2,3] tup1=tuple(list1) print(tup1) print(list(tup1)) 運行結果 (1, 2, 3) [1, 2, 3]
字典
通過key排序
d = {'a': 2, 'A': 1, 'c': 3, 'b': 2} sorted_key_list = sorted(d) #正向排序 #sorted_key_list = sorted(d,reverse=True) #逆向排序 print(sorted_key_list) sorted_dict = list(map(lambda x:{x:d[x]}, sorted_key_list)) print(sorted_dict) 運行結果 ['A', 'a', 'b', 'c'] # 根據ascii碼大小排序 [{'A': 1}, {'a': 2}, {'b': 2}, {'c': 3}]
通過value排序
d = {'a': 2, 'A': 1, 'c': 3, 'b': 2} sorted_key_list = sorted(d, key=lambda x:d[x]) #正向排序 # sorted_key_list = sorted(d, key=lambda x:d[x], reverse=True) #逆向排序 print(sorted_key_list) sorted_dict = list(map(lambda x:{x:d[x]}, sorted_key_list)) print(sorted_dict) 運行結果: ['A', 'a', 'b', 'c'] [{'A': 1}, {'a': 2}, {'b': 2}, {'c': 3}]
PS:
Map函數在python2中返回的是一個列表,而在python3中返回的是一個迭代器(地址)。故想以列表輸出,需要在map前添加list,轉換下格式。