python中内置的比较函数com,我们看一下
描述
cmp(x,y) 函数用于比较2个对象,如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1。
语法
以下是 cmp() 方法的语法:
cmp( x, y )
参数
- x -- 数值表达式。
- y -- 数值表达式。
返回值
如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1。
实例
以下展示了使用 cmp() 方法的实例:
#!/usr/bin/python
print "cmp(80, 100) : ", cmp(80, 100)
print "cmp(180, 100) : ", cmp(180, 100)
print "cmp(-80, 100) : ", cmp(-80, 100)
print "cmp(80, -100) : ", cmp(80, -100)
以上实例运行后输出结果为:
cmp(80, 100) : -1
cmp(180, 100) : 1
cmp(-80, 100) : -1
cmp(80, -100) : 1
二、自定义比较函数
可以定义自己的比较函数,然后通过参数传递给sort方法:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
def comp(x, y): if x < y: return 1 elif x > y: return - 1 else : return 0 nums = [ 3 , 2 , 8 , 0 , 1 ] nums.sort(comp) print nums # 降序排序[8, 3, 2, 1, 0] nums.sort( cmp ) # 调用内建函数cmp ,升序排序 print nums # 降序排序[0, 1, 2, 3, 8] |
也可以如我们一开始的代码中,用lambda表达式写。但要区别lambda表达式和def函数的区别。lambda表达式,正如名字一样,里边只能是表达式的形式,不能出现for,if,print等这样的语句。