>>> 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]))结果是一样的.
不懂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代表的意义.
相关分类