本文实例讲述了Python使用sorted排序的方法。分享给大家供大家参考,具体如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
# 例1. 按照元素出现的次数来排序
seq = [ 2 , 4 , 3 , 1 , 2 , 2 , 3 ]
# 按次数排序
seq2 = sorted (seq, key = lambda x:seq.count(x))
print (seq2) # [4, 1, 3, 3, 2, 2, 2]
# 改进:第一优先按次数,第二优先按值
seq3 = sorted (seq, key = lambda x:(seq.count(x), x))
print (seq3) # [1, 4, 3, 3, 2, 2, 2]
'''
原理:
先比较元组的第一个值,值小的在前。(注意:False < True)
如果相等就比较元组的下一个值,以此类推。
'''
|
运行结果:
1
2
3
4
|
#例2.这是一个字符串排序,排序规则:小写<大写<奇数<偶数
s = 'asdf234GDSdsf23'
s2 = "".join( sorted (s, key = lambda x: (x.isdigit(),x.isdigit() and int (x) % 2 = = 0 ,x.isupper(),x)))
print (s2) # addffssDGS33224
|
运行结果:
1
2
3
4
5
|
#例3. 一道面试题:
list1 = [ 7 , - 8 , 5 , 4 , 0 , - 2 , - 5 ]
#要求1.正数在前负数在后 2.正数从小到大 3.负数从大到小
list2 = sorted (list1,key = lambda x:(x< 0 , abs (x)))
print (list2) # [0,4,5,7,-2,-5,-8]
|
运行结果:
希望本文所述对大家Python程序设计有所帮助。