重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
原来的cmp函数,cmp(a,b):如果 a b 返回 -1, 如果 a == b 返回 0, 如果 a b 返回 1
创新互联建站专注于小店企业网站建设,成都响应式网站建设公司,商城开发。小店网站建设公司,为小店等地区提供建站服务。全流程按需制作,专业设计,全程项目跟踪,创新互联建站专业和态度为您提供的服务
计算机中判断结果True用1表示,False用0表示。
我们先不妨设ab,
那么a b=1,ab=0
那么(ab)-(ab)=0
同理可得到a==b输出0,ab输出-1
3开始没这个函数了,官方文档是这么写的
The cmp() function should be treated as gone, and the __cmp__() special method is no longer supported. Use __lt__() for sorting, __eq__() with __hash__(), and other rich comparisons as needed. (If you really need the cmp() functionality, you could use the expression (a b) - (a b) as the equivalent for cmp(a, b).)
大意就是cmp()函数已经“离开”了,如果你真的需要cmp()函数,你可以用表达式(a b) - (a b)代替cmp(a,b)
numbers.sort这种用法是错误的,如果你想要排序,则用如下语句:
num_sort=sorted(numbers,key=None,reverse=False)
新的list num_sort才是一个排序后的列表。然后,你自定义的cmp过程只能对比两个数字,而能对比列表中的各个元素,python3解释器不知道你要做什么,所以才会出错。
Python中可以使用cmp()函数比较两个列表的大小。
cmp()函数语法:cmp(list1, list2)
参数:
list1 -- 比较的列表。list2 -- 比较的列表。
返回值:
如果比较的元素是同类型的,则比较其值,返回结果。
如果两个元素不是同一种类型,则检查它们是否是数字。
如果是数字,执行必要的数字强制类型转换,然后比较。如果有一方的元素是数字,则另一方的元素"大"(数字是"最小的")否则,通过类型名字的字母顺序进行比较。
如果有一个列表首先到达末尾,则另一个长一点的列表"大"。
如果我们用尽了两个列表的元素而且所 有元素都是相等的,那么结果就是个平局,就是说返回一个 0。
以下实例展示了 cmp()函数的使用方法:list1, list2 = [123, 'xyz'], [456, 'abc']print cmp(list1, list2