python 排序,sort和sorted的区别是什么?

 我来答
sooney651
高粉答主

2018-03-31 · 关注我不会让你失望
知道大有可为答主
回答量:213
采纳率:100%
帮助的人:31.6万
展开全部

Python list内置sort()方法用来排序,也可以用python内置的全局sorted()方法来对可迭代的序列排序生成新的序列。

sorted(iterable,key=None,reverse=False),返回新的列表,对所有可迭代的对象均有效

sort(key=None,reverse=False) 就地改变列表  reverse:True反序;False 正序

Example1:

>>>sorted([1,5,3,2,9])

[1,2,3,5,9]

>>>a=[5,3,2,1,4]

>>>a.sort()

>>>a

[1,2,3,4,5]   #若用list.sort()则list本身将被修改

>>>sorted({1: 'D', 2: 'B', 3: 'B', 4: 'E', 5: 'A'})

[1,2,3,4,5]   #sorted()对所有的可迭代序列都有效

在python2.4开始,list.sort()和sorted()增加key参数来指定一个函数,此函数在每个元素比较前被调用。

Example2:

>>>sorted("This is a test string from Andrew".split(), key=str.lower)  #加了key,忽略大小写

['a', 'Andrew', 'from', 'is', 'string', 'test', 'This']                 #key=len按照长度进行排序

>>>sorted("This is a test string from Andrew".split())    #未加key,默认大写在前,小写在后

['Andrew', 'This', 'a', 'from', 'is', 'string', 'test']

更多的情况是用复杂对象的某些值来对复杂对象进行排序。

匿名用户
推荐于2017-11-25
展开全部
a.sort是对a进行排序,返回None,sorted(a)返回一个排好序的副本,a不变。请多看看相关教程。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
老男孩教育
2024-05-16 · 百度认证:北京一天天教育科技有限公司官方账号,教育领域创作者
老男孩教育
专注于Linux高级运维、Python开发、大数据培训,为您分享行业前沿的技术,有效的学习方法和有价值的学习资料。
向TA提问
展开全部
Python中sort()和sorted()的区别
在Python中,sort()和sorted()都是用于对序列如列表、元组进行排序的函数。但两者之间存在一些关键区别:
1、返回值
sort()直接对原始序列进行排序,不会返回任何值。
sorted()返回一个新序列,其中包含排序后的元素。
2、原地排序
sort()是一个原地排序函数,即它直接修改原始序列。
sorted()是一个非原地排序函数,它返回一个新序列,而不修改原始序列。
3、复杂度
sort()的时间复杂度通常为O(n log n),其中n是序列的长度。
sorted()的时间复杂度为O(n log n),并且还需要额外的空间来存储排序后的序列。
4、关键字参数
sort()不支持关键字参数。
sorted()支持关键字参数,例如key、reverse,允许根据自定义规则排序。
5、用法
sort():my_list.sort()
sorted():sorted_list=sorted(my_list)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
y203344
2015-11-06 · TA获得超过989个赞
知道小有建树答主
回答量:755
采纳率:66%
帮助的人:482万
展开全部
sort是一个值或变量等的一个树形,对自己的值进行排序。

如 a = [1,3,5,7,4,2]
a.sort()之后,再print a 就会发现a的值已经被排序了。[1,2,3,4,5,7]

sorted是一个命令,可以对任何integer排序。
如 a = [2,4,6,8,3,2,1]
sorted(a),输出的就是 [1,2,2,3,4,6,8],可以把他赋给变量b,b = sorted(a),这样b就有值了。
再如b = sorted('cdefgab'),print b输出 [a,b,c,d,e,f,g]
b = sorted('456321') , print b输出 [1,2,3,4,5,6]
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2015-11-06
展开全部
问一句,回帖有经验拿吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式