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

不是很明白返回-1和1是代表什么意思?

def reversed_cmp(x, y):
    if x > y:
        return -1
    if x < y:
        return 1
    return 0
 这一段代码是什么意思?


正在回答

4 回答

比较函数的定义是:传入两个待比较的元素x、y,如果x应排在y的前面返回-1,如果x应排在y的后面返回1.如果x、y相等返回0.这个记住就行。至于你想让x排在y前面还是后面,按大到小排还是小到大排,就要自己定义返回值是1还是-1.。比较函数根据返回值-1排序就是xy,返回值是1就是yx(我的理解应该是这样的)

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

这是这个函数的性质吧

sorted(iterable[, cmp[, key[, reverse]]])

iterable -- 可迭代对象。

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

key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。

reverse -- 排序规则,reverse = True 降序 , reverse = False 升序(默认)。


sorted(['bob', 'about', 'Zoo', 'Credit'], key=str.lower,reverse=True),也可以

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

同问。。

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

如果 x 应该排在 y 的前面,返回 -1,如果 x 应该排在 y 的后面,返回 1。如果 x 和 y 相等,返回 0。默认情况下,x为1,返回x,y,若是返回的为-1,则顺序相反(理解为刚好反向),返回y,x。(应该是这样理解吧?)

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

举报

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

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

进入课程

不是很明白返回-1和1是代表什么意思?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信