使用python的sorted函数,可对列表进行排序, 该函数默认从小到大排序。
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]
列表元素为元组元素时,我们需要用到参数关键词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)]
按照字典中的’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}]