注意:python3中已经删除了cmp()该函数。
cmp(x,y)
比较x与y,当x>y时,返回1; 当x==y时,返回0; 当x<y时,返回-1;
1 >>>cmp(1,0) 2 1 3 >>>cmp(1,1) 4 0 5 >>>cmp(1,2) 6 -1 7 >>>cmp('a','b') 8 -1 9 >>>cmp('abc','ab') 10 1 11 #因为'abc'的长度大于'ab',所以判定'abc'>'ab'
特殊的地方:
1.如果比较的类型不相同,但都是数字(整形和浮点类型),则进行强制的数字转换后再进行判断(对于哪个类型进行强制转换,这个有点疑问,但是觉得并不重要);
2.如果X为数字,Y非数字,则X<Y(数字是最小的);
>>> print True == 1 True >>> print True == 0 False >>> print False == 1 False >>> print False == 0 True #Bool类型中的True和False在计算机中也用1和0表示
3.当X、Y都不是数字且类型不同的时候,对其类型的名称(String,Bool...)进行判断;
>>> cmp(True,'True') -1 >>> cmp(False,'True') -1
以上是单纯的比较两个数据,下面是比较列表。
>>> list1 = [1,2,3] >>> list2 = [1,2,3] >>> cmp(list1,list2) 0 >>> list2[2] = 4 >>> cmp(list1,list2) -1 >>> list1 = ['abc','a'] >>> list2 = ['abc',1] >>> cmp(list1,list2) 1 >>> list2[1] = 'b' >>> cmp(list1,list2) -1 >>> list2[1] = True >>> cmp(list1,list2) 1