python sort和sorted函数

老规矩,先看help帮助信息,

sort(...)
    L.sort(cmp=None, key=None, reverse=False) -- stable sort *IN PLACE*;
    cmp(x, y) -> -1, 0, 1

sorted(...)
    sorted(iterable, cmp=None, key=None, reverse=False) --> new sorted list

可见,这两个函数有以下区别:

  1. 最直白的一点区别就是sort是在原列表上修改,而sorted则是返回新的列表
  2. sort是list列表的方法,而sorted则是内置的方法
  3. 由于sorted函数是内置,且操作对象为iterable对象,这就决定sorted的使用范围比sort更广

看实际例子,

#sort函数
>>> a=[9,4,6,2,1,0]
>>> a
[9, 4, 6, 2, 1, 0]
>>> a.sort()
>>> a
[0, 1, 2, 4, 6, 9]        #排序后列表发生变化
>>> a.sort(reverse=True)  #反向排序
>>> a
[9, 6, 4, 2, 1, 0]
#sorted函数
>>> b=[9,4,6,2,1,0]
>>> sorted(b)
[0, 1, 2, 4, 6, 9]    #排序后的输出
>>> b
[9, 4, 6, 2, 1, 0]    #原列表并未改变

再看下列表元素为tupe时的操作,

>>> a=[('Kobe', 24), ('Jordan', 23), ('T-mac', 1)]
>>> a.sort()
>>> a
[('Jordan', 23), ('Kobe', 24), ('T-mac', 1)]
>>> a.sort(key=lambda x: x[1])
>>> a
[('T-mac', 1), ('Jordan', 23), ('Kobe', 24)]
>>> b=[('Kobe', 24), ('Jordan', 23), ('T-mac', 1)]
>>> b
[('Kobe', 24), ('Jordan', 23), ('T-mac', 1)]
>>> sorted(b)
[('Jordan', 23), ('Kobe', 24), ('T-mac', 1)]
>>> sorted(b, key=lambda x: x[1])
[('T-mac', 1), ('Jordan', 23), ('Kobe', 24)]
>>> 

由此可知,对于tupe类元素,在排序时可以选择以哪个域作为排序关键词,这也是我们平时比较常用的功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值