0015days(内置函数sorted排序)

2018-07-23

#### 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)
# 结果:['老舍', '马化腾', '施瓦辛格', '奥斯特洛夫斯基']

  

# lambda匿名函数
s1 = sorted(lst,key=lambda x:len(x))
print(s1)
# 结果:['老舍', '马化腾', '施瓦辛格', '奥斯特洛夫斯基']

  

# 3.2 字典排序
# 年龄总大到小排序
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}
#  ]

  

猜你喜欢

转载自www.cnblogs.com/594504110python/p/9352836.html