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

cmp是不是python自带的函数?

如果是的话,那么cmp=lambda 以后调用的cmp和默认的cmp是不是不一样了。

还是说只有在这个functools.partial里的cmp不一样。其他函数用cmp还是默认的cmp的定义?

正在回答

3 回答

sorted(iterable, cmp=None, key=None, reverse=False)里面有四个参数想必你是知道的。

里面的cmp原始值是None,但是你要排序的['bob', 'about', 'Zoo', 'Credit']里面有大小写,按照原来的cmp,他就会将大小写一起来排序,输出会是['Credit', 'Zoo', 'about', 'bob'],所以你要告诉他怎么个操作来排序,所以建立了一个函数lambda s1, s2: cmp(s1.upper(), s2.upper()),为什么是upper呢,这是要将list里边的元素统一变成大写或小写,再来排序输出的答案,才能符合题目中‘实现忽略大小写排序’。

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

慕仔9483987 提问者

非常感谢!
2017-12-21 回复 有任何疑惑可以回复我~

cmp只是命名

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

Kingscent

看错了不好意思
2017-12-20 回复 有任何疑惑可以回复我~

一、cmp=lambda s1, s2中的cmp是不是指下面的sorted中的cmp:

sorted(...)

    sorted(iterable, cmp=None, key=None, reverse=False) --> new sorted list

二、cmp(s1.upper(), s2.upper())是不是指这个:

cmp(...)

    cmp(x, y) -> integer    

    Return negative if x<y, zero if x==y, positive if x>y.


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

举报

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

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

进入课程

cmp是不是python自带的函数?

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