千家信息网

python中sort()和sorted()的区别是什么

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这期内容当中小编将会给大家带来有关python中sort()和sorted()的区别是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。sorted():该函数第一
千家信息网最后更新 2026年11月03日python中sort()和sorted()的区别是什么

这期内容当中小编将会给大家带来有关python中sort()和sorted()的区别是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

  • sorted():该函数第一个参数iterable为任意可以迭代的对象,cmp是比较函数,通常为lambda函数,key是用于比较的关键字,reverse表示排序结果是否反转。

  • L.sort():该函数的三个参数和 sorted() 的后三个参数含义是一致的,而需要特别注意的是,该函数只适用于列表,而非任意可以迭代的对象。cmp是比较函数,接受两个对象参数 x 和 y,返回 负数(xy)。

让我们通过示例看一下:

L.sort()

A = [3,6,1,5,4,2]
A.sort()

这里需要注意的一点是,调用 L.sort() 完成排序后,改变了要排序的列表的结构, 即排序后A为[1, 2, 3, 4, 5, 6]。

我们可以指定关键字排序,比如:

student = [['Tom', 'A', 20], ['Jack', 'C', 18], ['Andy', 'B', 11]]
student.sort(key=lambda student: student[2])

学生列表中包含列表,每个列表是学生的姓名、成绩以及年龄,排序过程中指定了key为学生的年龄,所以排序的结果为:[['Andy', 'B', 11], ['Jack', 'C', 18], ['Tom', 'A', 20]]。

除了通过key来实现,根据年龄排序我们也可以通过定义cmp函数来实现:

student = [['Tom', 'A', 20], ['Jack', 'C', 18], ['Andy', 'B', 11]]
student.sort(cmp=lambda x, y: x[2] - y[2])

通过定义 key 和 cmp 都可以完成排序,但是这两者之间有什么区别呢?cmp传入的函数在整个排序过程中会调用多次,因为会进行多次比较,所以函数调用开销较大,因此使用 key 的效率比 cmp 的效率要高。

sorted()

sorted()可以应用于任意的可以迭代的对象,所以应用范围比L.sort() 广泛的多,可以应用于字符串,元组,列表,字典等可迭代对象。

B = 'Python'
sorted(B)
C = (3, 6, 1, 5, 4, 2)
sorted(C)
D = [3, 6, 1, 5, 4, 2]
sorted(D)
E = {'1': 'a', '2': 'b', '0': 'c'}
sorted(E.items())

需要注意的是,该函数会返回一个排序后的列表,原有可迭代对象保持不变,这与 L.sort() 函数不同。然而,这会浪费较大的存储空间,尤其是数据量较大时。所以,在列表进行排序时,需要考虑是否需要保存原列表,如果无需保存原列表,则优先使用L.sort() 节省内存空间,提高效率。

有的排序可能需要根据两个关键字,常用的比如单词的排序,第一个字母相同然后根据第二个字母排序,Python中的 sorted() 函数是否支持这种实现呢?答案是肯定的,再设置 key 时指定多个属性即可:

L = ['cat', 'binary', 'big', 'dog']
print sorted(L, key=lambda x: (x[0], x[1], x[2]))

排序的结果为 ['big', 'binary', 'cat', 'dog']。

总结

  • L.sort() 函数只适用于列表排序,而sorted()函数适用于任意可以迭代的对象排序。

  • L.sort() 函数排序会改变原有的待排序列表,而sorted()函数则不会改变。所以在使用列表进行排序时,需要考虑是否需要保存原列表,如果无需保存原列表,则优先使用L.sort() 节省内存空间,提高效率。

  • 两个函数通过定义 key 和 cmp 都可以完成排序,但是 key 的效率要远远高于 cmp,所以要优先使用 key 。


上述就是小编为大家分享的python中sort()和sorted()的区别是什么了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。

排序 函数 对象 迭代 效率 参数 较大 两个 关键 关键字 学生 年龄 空间 结果 应用 三个 内存 内容 字母 过程 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技图片 天津市摩尔互联网科技 科技服务与互联网 奇酷互联网科技 上海喔噻互联网科技 互联网科技logo设计 互联网高科技企业 深圳互联网科技怎么样 互联网科技公司需要的职位 银川新华互联网科技职业技术培训学校图片 银川新华互联网科技学校联系电话 乌苏新华互联网科技做什么的 中国互联网公司排名锤子科技 玉溪新华互联网科技好不好 特约风豹互联网科技为什么扣费 群盈汇互联网科技有限公司 皮皮虾互联网科技有限公司 互联网科技新闻 上海万顺科技互联网有限公司招聘 黑龙江互联网科技公司 互联网核心科技是什么 远信互联网科技 唐信互联网科技 大白互联网科技 博兴的互联网电子科技公司 互联网科技博主是什么意思 想开互联网科技公司怎么样 合肥互联网科技公司公章图片 江苏苏星互联网科技有限公司 悟空问答互联网科技
0