内置函数系列之 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}
#  ]

  

posted @ 2018-03-24 08:15  王剑威  阅读(186)  评论(0编辑  收藏  举报