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

python中自定义排序函数

def reversed_cmp(x, y):
   if x > y:
       return -1
   if x < y:
       return 1
   return 0


ef cmp_ignore_case(s1, s2):
   u1 = s1.upper()
   u2 = s2.upper()
   if u1 < u2:
       return -1
   if u1 > u2:
       return 1
   return 0
print sorted(['bob', 'about', 'Zoo', 'Credit'], cmp_ignore_case)



中的if u1 < u2:   

       return -1
   if u1 > u2:
       return 1
   return 0

  if x > y:
       return -1
   if x < y:
       return 1
   return 0   怎么并不对应的关系哎   S1,S2 相当于是X,Y吧

正在回答

1 回答

x ? y(问号可以是大于号,也可以是小于号),返回-1说明x在y的前面,返回1说明x在y的后面,返回0则是两者相等。如果x > y时返回-1,则x在y前面且x大于y,说明该函数是由大到小排序,而如果x < y时返回-1,则x在y前面且x小于y,说明该函数是由小到大排序。所以reversed_cmp(x, y)实现的是由大到小排序,而cmp_ignore_case(s1, s2)实现的是由小到大排序,故而在判断部分代码不对应。

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

慕沐4974640 提问者

在sorted(['bob', 'about', 'Zoo', 'Credit'], cmp_ignore_case)中,怎么选取list中的元素来比较大小的哎? 是随机取两个元素先比较后排序再将已经取的两个元素再与第三个元素相比较?
2017-04-15 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

python中自定义排序函数

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

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

帮助反馈 APP下载

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

公众号

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