python3的sorted和sort
2022/3/2 17:16:27
本文主要是介绍python3的sorted和sort,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
排序函数
python内置排序函数sorted,可以适用于所有可迭代的对象。而类型自有的sort函数只适用于类型本身。例如list.sort(),只适用于列表类型。另外,sort函数是在原来列表上直接进行排序,而sorted函数则是返回一个排序之后的列表。
sort(self, /, *, key=None, reverse=False) # list类的sort方法原型 sorted(iterable, /, *, key=None, reverse=False) # sorted方法原型
其中参数/和*是python3.8之后新增的语法,详情见Python函数。它们不需要我们传递,我们只关心self(iterable),key,reverse这三个参数即可。
iterable | 可迭代对象 |
key | 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序 |
reverse | 排序规则,reverse = True 降序 , reverse = False 升序(默认升序) |
对列表进行简单排序
L = [12, 23, 32, 1, 45, 18, 10, 22] L.sort() # 原地排序 print(L)
对字典的键进行排序
D = {'a': 1, 'x': 2, 'c': 3} key_sort = sorted(D.keys()) # 对字典键进行排序,返回列表对象 print(key_sort)
对字符串列表根据字符串的长度进行排序
str_list:list = ['123', '1', '1234', '12', '234'] str_list = sorted(str_list, key=lambda x:len(x)) # 根据字符串长度进行排序 print(str_list)
冬奥会奖牌榜
medal = [["中国", 9, 4, 2], ["美国", 8, 10, 7], ["英国", 1, 1, 0], ["法国", 5, 7, 2], [ "俄罗斯奥委会", 6, 12, 14]] medal_tally = sorted(medal, key=lambda x:sum(x[1:])) # 奖牌总数榜 print(medal_tally) gold_medal = sorted(medal, key=lambda x:x[1]) # 金牌榜 print(gold_medal) silver_medal = sorted(medal, key=lambda x:x[2]) # 银牌榜 print(silver_medal) copper_medal = sorted(medal, key=lambda x:x[3]) # 铜牌榜 print(copper_medal)
对字典的值进行排序,返回列表
D = {'a':100, 'b': 2333, 'c': 777, 'd': 666, 'e': 888} res = sorted(D.items(), key=lambda x: x[1]) # 根据字典值进行排序 print(res)
按照成绩降序排序,相同成绩的按照名字升序排序
d1 = [{'name':'alice', 'score':38}, {'name':'bob', 'score':18}, {'name':'darl', 'score':28}, {'name':'christ', 'score':28}] l = sorted(d1, key=lambda x:(-x['score'], x['name'])) # 可以以元组形式传入,当分数相同的时候,按照姓名升序排列 print(l)
这篇关于python3的sorted和sort的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-21Python编程基础教程
- 2024-11-20Python编程基础与实践
- 2024-11-20Python编程基础与高级应用
- 2024-11-19Python 基础编程教程
- 2024-11-19Python基础入门教程
- 2024-11-17在FastAPI项目中添加一个生产级别的数据库——本地环境搭建指南
- 2024-11-16`PyMuPDF4LLM`:提取PDF数据的神器
- 2024-11-16四种数据科学Web界面框架快速对比:Rio、Reflex、Streamlit和Plotly Dash
- 2024-11-14获取参数学习:Python编程入门教程
- 2024-11-14Python编程基础入门