python序列(列表,元组,字典)的常⽤排序列表
正向排序
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]
sortedlist>>> verse()
>>> 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,转换下格式。