猿问

关于sorted的一些疑问~

>>> a = [('b',2),('a',1),('c',0)]
>>> sorted(a)
[('a', 1), ('b', 2), ('c', 0)]
>>> b =sorted(a,key=lambda w:w[0])
>>> b
[('a', 1), ('b', 2), ('c', 0)]
>>> b =sorted(a,key=lambda w:w[1])
>>> b
[('c', 0), ('a', 1), ('b', 2)]
>>> b =sorted(a,cmp=lambda w,q:cmp(w[1],q[1]))
>>> b
[('c', 0), ('a', 1), ('b', 2)]

这里b =sorted(a,key=lambda w:w[1])和b =sorted(a,cmp=lambda w,q:cmp(w[1],q[1]))结果是一样的.

  1. 不懂key,lambda,cmp什么作用.尤其是lambda的用法!!

>>> b =sorted(a,key=lambda w:w[1],reverse=1)
>>> b
[('b', 2), ('a', 1), ('c', 0)]

这个reverse去查过还是不怎么明白....

看的东西大概如下:如果 x 应该排在 y 的前面,返回 -1,如果 x 应该排在 y 的后面,返回 1。如果 x 和 y 相等,返回 0。

因此,如果我们要实现倒序排序,只需要编写一个reversed_cmp函数:

def reversed_cmp(x, y):
    if x > y:
        return -1
    if x < y:
        return 1
    return 0

2.这个reversed判断的很绕,  比如a < b 返回1,那么a排在b后面, (1代表倒序?)

                                                    b > a 返回-1,那么b排在a前面(-1代表正序?)      

   有没有更好的理解方法?不理解1和-1代表的意义.






W_Qing
浏览 1963回答 1
1回答
随时随地看视频慕课网APP

相关分类

Python
我要回答