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

此处为什么需要cmp=lambda这样写?

如题,为什么是cmp=lambda s1,s2:cmp(。。。)这样写。具体意义是什么?我试了下,去掉“cmp=”就不可以了?为什么?不太明白这个程序。求指点

正在回答

5 回答

sorted方法是有三个参数,cmp就是其中的一个。cmp本身是一个比较函数。这儿之所以这么写是想重写比较的方式,所以写了一个lambda表达式重新定义cmp。

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

楼上也说了,sorted 方法是需要三个参数的 array, key, cmp

cmp=lambda s1,s2:cmp(。。。)

cmp 就是其中一个参数。

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

对,参考文档里有关于sorted的方法,是需要三个参数的

sorted(iterable[, cmp[, key[, reverse]]])


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

可以,但要指定key,查看sorted函数是有三个参数的,指定key和指定cmp效果一样

>>> help(sorted)

Help on built-in function sorted in module __builtin__:


sorted(...)

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


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

cmp 是函数名,相当于每次调用匿名函数   lambda s1,s2:cmp(s1.upper(),s2.upper())  就会调用自身。

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

举报

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

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

进入课程

此处为什么需要cmp=lambda这样写?

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