为了账号安全,请及时绑定邮箱和手机立即绑定

cmp为什么加了负号就变成了倒序

print sorted([1, 3, 9, 5, 0], lambda x,y: -cmp(x,y)) # 为什么加了负号就变成了倒序


正在回答

2 回答

相当于 这个第二个比较函数 是一种比较规则 ,默认的是x<y 返回-1 表示放在前面 ,x>y 返回1 表示放在后面,0 表示一样大。

加上符号后 就改变了原来的规则 x<y返回1 放在后面 以此类推 。sorted函数根据这个相反的排序规则进行排序。

我是这么理解的

0 回复 有任何疑惑可以回复我~
sorted(iterable[, cmp[, key[, reverse]]])

参数说明:

  • iterable -- 可迭代对象。

  • cmp -- 比较的函数,这个具有两个参数,参数的值都是从可迭代对象中取出,此函数必须遵守的规则为,大于则返回1,小于则返回-1,等于则返回0。


原本是 x<y return -1

加了个负号 就是-(return -1) == return 1  

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
python进阶
  • 参与学习       255533    人
  • 解答问题       3038    个

学习函数式、模块和面向对象编程,掌握Python高级程序设计

进入课程

cmp为什么加了负号就变成了倒序

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号