课程
/后端开发
/Python
/python进阶
def reversed_cmp(x, y): if x > y: return -1 if x < y: return 1 return 0
这个怎么体现出来是倒序的?
一直也看不明白
2020-04-23
源自:python进阶 2-7
正在回答
你可以这么理解,你想x放在y前面,则返回-1,相反则返回1,相等则返回0;至于楼上 说的没有关系,因为函数名字可以随便命名。
Python有个内置函数cmp,大于返回正数,等于返回0,小于返回负数。也就是说只要规定返回值为正数就一定大于,0就一定等于,负数就一定小于,这样规定是为了更好的排序,因为本身程序输入的数字字符串之类的比较是用ASCII码比较,顺序比较返回值会在一个正负区间之类返回数,会遵循前面说的返回规律
这应该是个源码
我是这样理解的,sort其实是按照顺序的,就是x>y就按照x y ;x<y就按照x<y,x=y就是0,然后这个判断的标准就是-1 1 0,然后至于是等于1还是-1 还是0就是你的函数自己决定的,如果没用定义函数应该就是按照我们正常的从小到大。但是你现在定义了,原本是x,y,如果x>y,按正常应该是y x,但是你现在自己定义了为-1,在sort看来就是意味着x<y,所以就是倒序了。因为总是把大的放前面.
l=[67,8,4,5]print sorted(l)
结果是:
[4, 5, 8, 67]
举报
学习函数式、模块和面向对象编程,掌握Python高级程序设计