python 排序用法,sort()可传入函数排序,与sorted()区别,给字典进行排序

def add(list):
	return list[0]+list[1]

a=[[3,4],[1,2],[5,6]]
a.sort(key=add) #该方法是将a列表的列表元素传入add()方法,计算出a中元素的和,根据和进行排序,再将a列表中的元素排序

也可以用下面匿名函数的方法排序
a.sort(key=lambda x:x[0]+x[1])
b=[3,5,1,4]
c=sorted(b) #b列表不变,生成一个新的排过序的列表c
b.sort() #b列表改变,b列表变为排过序的列表
a={2:'sd',4:'hj',1:'fg',3:'gf'}
b=sorted(a.items(),key=lambda e:e[0],reverse=False) #b的值为[(1, 'fg'), (2, 'sd'), (3, 'gf'), (4, 'hj')]
#a.items()表示将key和value以列表的形式传入函数中[(2, 'sd'), (4, 'hj'), (1, 'fg'), (3, 'gf')]
#key=lambda e:e[0]表示将传入的列表中每个元素中的第一个元素取出进行排序
#reverse=False表示升序
排序规则:小写<大写<奇数<偶数
a='5gG6R6ed4'
b=sorted(a,key=lambda x:(
x.isdigit(), #是否是数字
x.isdigit() and int(x)%2==0, #是否是偶数
x.isalpha() and x.isupper(), #是否是大写字母
x.isalpha() and x.islower() #是否是小写字母
))
print(''.join(b)) #b的值为gedGR5664

#其原理为:在sorted中,False小于True,所以将字符依次传入sorted中,可判断出以上四个条件分别是False还是True,再进行排序
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值