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]

>>> 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,转换下格式。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值