内置函数系列之 sorted排序
sorted排序函数语法:
sorted(可迭代对象,key=函数(默认为None),reverse=False) 将可
迭代对象的每一个元素传进key后面的函数中,根据函数运算的结果(返回值)进行排序
reverse:是否倒叙,True:倒叙,False:正序
1.列表排序
lst = [1,5,8,6,4,3,2,44,88,5,12,3] lst_new = sorted(lst) # 原列表不改变,返回一个新列表 print(lst_new) # 结果:[1, 2, 3, 3, 4, 5, 5, 6, 8, 12, 44, 88] #默认按正序排列.
2.字典key排序
dic = {1:'A',5:'E',3:'C',2:'B',4:'D'} dic_new = sorted(dic) print(dic_new) # 结果:[1, 2, 3, 4, 5] # 将字典的key进行排序,然后添加到列表中
3.结合函数排序
3.1 根据字符串的长度进行排序
# 普通函数 lst = ['马化腾','施瓦辛格','奥斯特洛夫斯基','老舍'] def func(s): return len(s) # 计算出每个元素的长度,按照返回的长度进行排序 s = sorted(lst,key=func) print(s) # 结果:['老舍', '马化腾', '施瓦辛格', '奥斯特洛夫斯基']
3.2使用lambda匿名函数排序
s1 = sorted(lst,key=lambda x:len(x)) print(s1) # 结果:['老舍', '马化腾', '施瓦辛格', '奥斯特洛夫斯基']
3.3 字典排序
按照年龄从大到小排序
lst = [{'id':1,'name':'alex','age':18}, {'id':2,'name':'wusir','age':48}, {'id':3,'name':'taibai','age':58}, {'id':4,'name':'sath','age':18} ] s3 = sorted(lst,key=lambda x:x['age'],reverse=True) print(s3) # 结果: # [{'id': 3, 'name': 'taibai', 'age': 58}, # {'id': 2, 'name': 'wusir', 'age': 48}, # {'id': 1, 'name': 'alex', 'age': 18}, # {'id': 4, 'name': 'sath', 'age': 18} # ]