使用python的sorted函数,可对列表进行排序, 该函数默认从小到大排序。
1. 列表中为普通元素
a = [80, 85, 90, 100]
a = sorted(a) # sorted函数默认从小到大排序。
print(a) # 输出结果: [80, 85, 90, 100]
倒序排序为从大到小排序,使用reverse=True
a = [80, 85, 90, 100]
a = sorted(a, reverse=True) # reverse=True, 从大到小排序。
print(a) # 输出结果: [100, 90, 85, 80]
2. 列表中为元组元素
列表元素为元组元素时,我们需要用到参数关键词key,lambda是一个隐函数,是固定写法,x表示一个元组 (x为任意名);x[0]表示元组里的第一个元素,第二个元素就是x[1]。
(1) 按第一个关键字排序
按照元祖中的姓名排序:
a = [('Mary',80),('David',85),('Jack',90),('Alice',100)]
a = sorted(a, key = lambda x:x[0])
print(a) # 输出结果: [('Alice', 100), ('David', 85), ('Jack', 90), ('Mary', 80)]
(2) 按第二个关键字排序
按照元祖中的得分排序:
a = [('Mary',80),('David',85),('Jack',90),('Alice',100)]
a = sorted(a, key = lambda x:x[1])
print(a) # 输出结果: [('Mary', 80), ('David', 85), ('Jack', 90), ('Alice', 100)]
倒序排序为从大到小排序,使用reverse=True
a = [('Mary',80),('David',85),('Jack',90),('Alice',100)]
a = sorted(a, key = lambda x:x[1], reverse=True)
print(a) # 输出结果: [('Mary', 80), ('David', 85), ('Jack', 90), ('Alice', 100)]
2. 列表中为字典元素
按照字典中的’score’项从大到小排序:
a = [{'name': 'Mary', 'score': 80},
{'name': 'David', 'score': 85},
{'name': 'Jack', 'score': 90},
{'name': 'Alice', 'score': 100}]
a = sorted(a, key = lambda x:x['score'], reverse=True)
print(a) # 输出结果: [{'name': 'Alice', 'score': 100}, {'name': 'Jack', 'score': 90}, {'name': 'David', 'score': 85}, {'name': 'Mary', 'score': 80}]