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

有点蒙啊。。

sorted函数是怎么判断升序还是降序的,和cmp那个函数有什么关系,谁能帮我讲解一下,谢谢

正在回答

3 回答

cmp()这个函数是用来比较两个对象的,比如cmp(x,y),当x > y的时候函数返回1,x < y就返回-1,x == y就返回0啊,就这样的,然后像这个sorted_ignore_case = functools.partial(sorted, cmp=lambda s1, s2: cmp(s1.upper(), s2.upper())),这个语句里面比价s1和s2的大写字母的ascll码的大小(假设这里的s1和s2是字符串,一般比较比较字符串的第一个字符),接着就是理解sorted()也是一个高阶函数,它可以接收一个比较函数来实现自定义排序,比较函数(这里自定义的比较函数是cmp())的定义是,传入两个待比较的元素 x, y,如果 x 应该排在 y 的前面,返回 -1(函数cmp的()的返回值),如果 x 应该排在 y 的后面,返回 1(函数cmp的()的返回值)。如果 x 和 y 相等,返回 0(函数cmp的()的返回值)。所以这里如果s1 > s2的话s1就排s2后面

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

是否交换位置是sorted()这个函数根据比较函数的返回值来决定(这里的比较函数是cmp()),这样子的话cmp(x,y)返回值可以是1、-1、0,然后如果x >y ,cmp()返回1,那么sorted()就知道x应该在y后面,然后它会调整他们的位置

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

篠小 提问者

嗯嗯,知道了,谢谢
2016-07-29 回复 有任何疑惑可以回复我~

谢谢你,你说 if x > y return 1  if x < y  return -1   return 0

就是满足 x>y 函数会交换x和y??是吗

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

举报

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

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

进入课程

有点蒙啊。。

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