python中sorted函数逆序_python中sort和sorted函数小结

L.sort(cmp=None, key=None, reverse=False)

sorted(iterable, cmp=None, key=None, reverse=False)

这样看,sorted函数只比sort函数多一个iterable参数,其余没什么不同,iterable是一个迭代器参数。

一、

sorted是一个内建函数,sort是列表的一个内部函数,所以调用方式不一样,并且sorted函数不改变其迭代器参数,返回一个排序好的序列副本,但是sort作为列表的内部函数,在调用完之后,列表自身内部已经是排序好的顺序

L1 = [3,2,5,1,4]

L2 = [3,2,5,1,4]

L1.sort()

print('L1:',L1)

print('sorted:',sorted(L2))

print('L2:',L2)

1

2

3

4

5

6

这段代码运行结果为

L1: [1, 2, 3, 4, 5]

sorted: [1, 2, 3, 4, 5]

L2: [3, 2, 5, 1, 4]

二、key参数

key 是带一个参数的函数, 用来为每个元素提取比较值

1.假如我们不使用key参数,key默认是None

L = [(1,'S'),(3,'E'),(2,'A')]

L.sort()

print('sort:',L)

L = [(1,'S'),(3,'E'),(2,'A')]

print('sorted:',sorted(L))

1

2

3

4

5

以上代码运行的结果为:

sort: [(1, ‘S’), (2, ‘A’), (3, ‘E’)]

sorted: [(1, ‘S’), (2, ‘A’), (3, ‘E’)]

2.现在我们使用key参数,提取最后一个元素作为比较值

def last(L):

return L[-1]

L = [(1,'S'),(3,'E'),(2,'A')]

L.sort(key = last)

print('sort:',L)

L = [(1,'S'),(3,'E'),(2,'A')]

print('sorted:',sorted(L,key = last))

1

2

3

4

5

6

7

上面代码运行结果为:

sort: [(2, ‘A’), (3, ‘E’), (1, ‘S’)]

sorted: [(2, ‘A’), (3, ‘E’), (1, ‘S’)]

3.使用lambda匿名函数作为key参数

通过 lambda 关键字,可以创建短小的匿名函数。

L = [(1,'S'),(3,'E'),(2,'A')]

L.sort(key = lambda L : L[-1])

print('sort:',L)

L = [(1,'S'),(3,'E'),(2,'A')]

print('sorted:',sorted(L,key = lambda L : L[-1]))

1

2

3

4

5

运行结果为;

sort: [(2, ‘A’), (3, ‘E’), (1, ‘S’)]

sorted: [(2, ‘A’), (3, ‘E’), (1, ‘S’)]

三、reverse参数

reverse参数是默认值false的时候是正序排,当reverse = True的时候是倒序排列

L = [1,3,2]

L.sort()

print(L)

L.sort(reverse = True)

print(L)

1

2

3

4

5

运行结果为:

[1, 2, 3]

[3, 2, 1]

关于cmp函数,因为在Python3.x中已经取消了这个参数。。在此就不多说了

---------------------

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值