课程
/后端开发
/Python
/python进阶
如题,为什么是cmp=lambda s1,s2:cmp(。。。)这样写。具体意义是什么?我试了下,去掉“cmp=”就不可以了?为什么?不太明白这个程序。求指点
2015-04-29
源自:python进阶 2-15
正在回答
sorted方法是有三个参数,cmp就是其中的一个。cmp本身是一个比较函数。这儿之所以这么写是想重写比较的方式,所以写了一个lambda表达式重新定义cmp。
楼上也说了,sorted 方法是需要三个参数的 array, key, cmp
cmp=lambda s1,s2:cmp(。。。)
cmp 就是其中一个参数。
对,参考文档里有关于sorted的方法,是需要三个参数的
sorted(iterable[, cmp[, key[, reverse]]])
可以,但要指定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
cmp 是函数名,相当于每次调用匿名函数 lambda s1,s2:cmp(s1.upper(),s2.upper()) 就会调用自身。
举报
学习函数式、模块和面向对象编程,掌握Python高级程序设计