使用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}]
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/162841.html