python中cmp函数 python cmpp

b)-(ab)-(a'>在python 3.5中,cmp(a,b)被代替为(a>b)-(ab)-(a

原来的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

python3.2.2版本中的cmp()函数

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)

Python3.x运用cmp()函数进行高级排序报错

numbers.sort这种用法是错误的,如果你想要排序,则用如下语句:

num_sort=sorted(numbers,key=None,reverse=False)

新的list num_sort才是一个排序后的列表。然后,你自定义的cmp过程只能对比两个数字,而能对比列表中的各个元素,python3解释器不知道你要做什么,所以才会出错。

python中a与1哪个大

Python中可以使用cmp()函数比较两个列表的大小。

cmp()函数语法:cmp(list1, list2)

参数:

list1 -- 比较的列表。list2 -- 比较的列表。

返回值:

如果比较的元素是同类型的,则比较其值,返回结果。

如果两个元素不是同一种类型,则检查它们是否是数字。

如果是数字,执行必要的数字强制类型转换,然后比较。如果有一方的元素是数字,则另一方的元素"大"(数字是"最小的")否则,通过类型名字的字母顺序进行比较。

如果有一个列表首先到达末尾,则另一个长一点的列表"大"。

如果我们用尽了两个列表的元素而且所 有元素都是相等的,那么结果就是个平局,就是说返回一个 0。

以下实例展示了 cmp()函数的使用方法:list1, list2 = [123, 'xyz'], [456, 'abc']print cmp(list1, list2


网站名称:python中cmp函数 python cmpp
文章来源:http://myzitong.com/article/doedshs.html