Python: sorted和sort的区别

原创 2016年08月29日 03:00:33

首先sorted和sort 的区别主要在于sorted是将排序完的数据赋予给一个新变量,而sort则是在原变量的基础上直接进行排序,不产生新变量。

这样说可能有点不好懂,看例子;

<span style="font-family:Verdana;font-size:12px;">a, b = [('b',1), ('c',2), ('a',3)] # a, b 为同一个list
a.sort()  # 这样可以直接对a进行排序,如果是d = a.sort(), 你会发现a 同样发生了改变,而d并没有被赋值。
c = sorted(b) # 使用sorted,这样b就不会进行排序,而c也被赋值,成为sorted b.</span>


接下来看两个函数中参数的使用,两者大致相同。有cmp代表compare,key代表关键字,具体可以查看函数帮助文档。
<span style="font-family:Verdana;">a = [('b', 1), ('c', 2), ('a', 3)]

b=a.sort(key = lambda x: x[1])

b

a
Out[35]: [('b', 1), ('c', 2), ('a', 3)]</span>
可以发现b并没有被赋值。。。 这里的lambda x: x[1]是指定了排序方法,选择list中每个tuple的第二个元素来比较进行从小到大,从前到后的排序,当然如果我们想从大到小排序,加入另一个参数,reverse = True 

如果想用多个关键字来排序:

<span style="font-family:Microsoft YaHei;"> a.sort(key = lambda x: (x[1],x[0]))</span>
sorted的用法也差不多,cmp参数根据我理解跟key的用处有点相似,可以不用管,而且貌似key的排序效率更高!

版权声明:本文为博主原创文章,转载请注明出处。

python排序函数sort()与sorted()区别

sort是容器的函数:sort(cmp=None, key=None, reverse=False) sorted是python的内建函数:sorted(iterable, cmp=None, key...
  • zyl1042635242
  • zyl1042635242
  • 2015年01月25日 16:58
  • 6908

Python的排序:关于sort()与sorted()

list.sort()list的一个方法,具有三个参数:cmp,key,reverse(Python3只有后两个) 一个list调用sort方法后,对该list进行排序,不保存原list - 参数...
  • qq_15714857
  • qq_15714857
  • 2016年01月19日 22:14
  • 2763

Spark技术内幕:Sort Based Shuffle实现解析

在Spark 1.2.0中,Spark Core的一个重要的升级就是将默认的Hash Based Shuffle换成了Sort Based Shuffle,即spark.shuffle.manager...
  • anzhsoft2008
  • anzhsoft2008
  • 2015年01月05日 07:29
  • 17036

Python入门:sort与sorted区别

Python入门:sort与sorted区别
  • foryouslgme
  • foryouslgme
  • 2016年06月23日 17:06
  • 485

python sort 和sorted的区别和用法

python sort 和sorted的区别和用法 1.最好的学习方法是看帮助文章 >>> help(list.sort) sort(...)     L.sort(cmp=None, key=Non...
  • smartlinuxc
  • smartlinuxc
  • 2015年03月24日 16:02
  • 393

python sort、sorted常用的排序技巧

array.sort(key=lambda x: x[2]) 根据array中每个元组的第二个元素排序 Python list内置sort()方法用来排序,也可以用pyth...
  • a3335581
  • a3335581
  • 2017年03月28日 16:29
  • 194

Python 列表排序方法reverse、sort、sorted详解

python语言中的列表排序方法有三个:reverse反转/倒序排序、sort正序排序、sorted可以获取排序后的列表。在更高级列表排序中,后两中方法还可以加入条件参数进行排序。 reve...
  • qiuzhijieluojianping
  • qiuzhijieluojianping
  • 2016年02月03日 14:50
  • 334

python中sort和sorted函数小结

因为作者本人也是刚学python不久,在看python官方文档的时候看到了 Lambda 函数,其中使用sort函数的地方看的有些迷惑,所以就查找了一些关于sort和sorted函数的资料,在此整理到...
  • qq_33897536
  • qq_33897536
  • 2016年05月06日 16:19
  • 370

python列表排序方法sort、sorted技巧篇

转自:http://www.cnblogs.com/whaben/p/6495702.html python 列表排序方法sort、sorted技巧篇 Python lis...
  • YANG_Gang2017
  • YANG_Gang2017
  • 2017年10月26日 21:41
  • 166

Python 列表排序方法reverse、sort、sorted详解

python语言中的列表排序方法有三个:reverse反转/倒序排序、sort正序排序、sorted可以获取排序后的列表。在更高级列表排序中,后两中方法还可以加入条件参数进行排序。 revers...
  • gettogetto
  • gettogetto
  • 2017年06月09日 12:07
  • 171
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Python: sorted和sort的区别
举报原因:
原因补充:

(最多只允许输入30个字)