课程
/后端开发
/Python
/python进阶
print sorted([1, 3, 9, 5, 0], lambda x,y: -cmp(x,y)) # 为什么加了负号就变成了倒序
2018-05-22
源自:python进阶 2-10
正在回答
相当于 这个第二个比较函数 是一种比较规则 ,默认的是x<y 返回-1 表示放在前面 ,x>y 返回1 表示放在后面,0 表示一样大。
加上符号后 就改变了原来的规则 x<y返回1 放在后面 以此类推 。sorted函数根据这个相反的排序规则进行排序。
我是这么理解的
sorted(iterable[, cmp[, key[, reverse]]])
参数说明:
iterable -- 可迭代对象。
cmp -- 比较的函数,这个具有两个参数,参数的值都是从可迭代对象中取出,此函数必须遵守的规则为,大于则返回1,小于则返回-1,等于则返回0。
原本是 x<y return -1
加了个负号 就是-(return -1) == return 1
举报
学习函数式、模块和面向对象编程,掌握Python高级程序设计
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号