Python: sorted和sort的区别

首先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的排序效率更高!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值