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

比较大小与排列顺序

怎么理解“如果 x 应该排在 y 的前面,返回 -1,如果 x 应该排在 y 的后面,返回 1。如果 x 和 y 相等,返回 0”

def cmp_ignore_case(s1, s2):
    if s1.lower()>s2.lower():
        return -1
    if s1.lower()<s2.lower():
        return 1
    return 0

print sorted(['bob', 'about', 'Zoo', 'Credit'],cmp_ignore_case) 结果是倒序


正在回答

1 回答

def cmp_ignore_case(s1, s2):
    if s1.lower() > s2.lower():
        return 1
    if s1.lower() < s2.lower():
        return -1
    return 0


print(sorted(['bob', 'about', 'Zoo', 'Credit'], cmp_ignore_case))
# 顺序反了呀


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

裴湛永 提问者

是的,不太理解为什么 if s1.lower() > s2.lower(): return 1 代表的是从小到大排序
2019-06-28 回复 有任何疑惑可以回复我~
#2

macleo 回复 裴湛永 提问者

这个和Java的Interface Comparable,性质类似,就是比较排序的。你牢牢记住就行。 大于 就必须返回1.小于就必须返回-1.对于自定义的比较需要用到。
2019-06-28 回复 有任何疑惑可以回复我~
#3

裴湛永 提问者 回复 macleo

好的,谢谢你
2019-06-28 回复 有任何疑惑可以回复我~
#4

macleo 回复 裴湛永 提问者

嘿嘿……都是童鞋啦还辣么客气
2019-06-28 回复 有任何疑惑可以回复我~
查看1条回复

举报

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

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

进入课程

比较大小与排列顺序

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