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

为什么排序是按照字母顺序,代码就要写成u1>u2,return 1,u1<u2,return-1,不明白为什么是大于返回1,小于返回-1

def cmp_ignore_case(s1,s2):

    u1=s1.upper()

    u2=s2.upper()

    if u1>u2:

        return 1

    if u1<u2:

        return -1

    else:

        return 0

print sorted(['bob','about','Zoo','Credit],cmp_ignore_case)

正在回答

4 回答

同问。

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

我的理解是两个值 x,y比较,1和-1决定的是列表的排序方式。当u1>u2时,如果你想让列表排序由小到大排的话,就返回1(对应规则中的 如果x排在y后面,返回1);若你想让列表排序由大到小排的话,就返回-1(对应规则中的 如果x排在y前面,返回-1)

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

可能和True是1,False是0类似

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

比较函数的定义是,传入两个待比较的元素 x, y,如果 x 应该排在 y 的前面,返回 -1,如果 x 应该排在 y 的后面,返回 1。如果 x 和 y 相等,返回 0。

这是规则

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

慕仙9347523

但是为什么呢?这个-1,0,1又是用在哪里呢?
2018-10-23 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

为什么排序是按照字母顺序,代码就要写成u1>u2,return 1,u1<u2,return-1,不明白为什么是大于返回1,小于返回-1

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