使用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}]

'score’项相同时,按照’name’从大到小排序:

a = [{'name': 'Mary', 'score': 80},
     {'name': 'David', 'score': 85},
     {'name': 'Jack', 'score': 95},
     {'name': 'Jock', 'score': 95}]
a = sorted(a, key = lambda x: (x['score'], x['name']), reverse=True)
print(a)
# 输出结果: [{'name': 'Jock', 'score': 95}, {'name': 'Jack', 'score': 95}, {'name': 'David', 'score': 85}, {'name': 'Mary', 'score': 80}]
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐