博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python cmp()函数
阅读量:4170 次
发布时间:2019-05-26

本文共 882 字,大约阅读时间需要 2 分钟。

cmp( x, y):比较2个对象,前者小于后者返回-1,相等则返回0,大于后者返回1.

 

>>> help(cmp)Help on built-in function cmp in module __builtin__:cmp(...)    cmp(x, y) -> integer    Return negative if x
y.>>>

Python的cmp函数可以比较同类型之间,或者不同数据类型之间。然后根据Python的cmp比较函数的返回值来判定比较大小。

>>> list1, list2 = [123, 'xyz'], [456, 'abc']>>> cmp(list1, list2)-1>>> cmp(list2, list1)1>>> list3 = list2 + [789]>>> list3[456, 'abc', 789]>>> cmp(list2, list3)-1

观察上面cmp函数的几个比较,可以总结:

Python的cmp比较函数 ,如果我们比较的是两个同类的对象,比较操作是非常直观的。

  • 数字和字符串的比较,直接比较它们的值。
     
  • 对于序列类型的比较,方式上有相似。Python在两个对象基本不能比较的时候尽量做出公平的结果。比如当两个对象没有关系时,或者两种类型根本就没有用于比较的函数时,这时 Python只能根据"逻辑"来做出结论。比较的算法逻辑:
1.   对两个列表的元素进行比较.

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

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

     a. 如果是数字,执行必要的数字强制类型转换,然后比较.

     b. 如果有一方的元素是数字,则另一方的元素"大"(数字是"最小的")

     c. 否则,通过类型名字的字母顺序进行比较.

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

5.   如果我们用尽了两个列表的元素而且所有元素都是相等的,那么结果就是个平局,就

是说返回一个 0.

这就是Python的cmp函数比较原理 了。

原文地址:

转载地址:http://wnyai.baihongyu.com/

你可能感兴趣的文章
避免if语句的深层次嵌套
查看>>
C++中类的声明和类的实现分开
查看>>
VS中常用的快捷键
查看>>
UML学习入门就这一篇文章
查看>>
【20181209】C++求最大公约数
查看>>
为何程序员喜欢将INF设置为0x3f3f3f3f?
查看>>
ios::sync_with_stdio(false);
查看>>
20190120 OJ 回文序列的判断
查看>>
20190120 OJ递归
查看>>
leetcode notes:longest substring without repeating charactors
查看>>
蓝桥杯2016省赛 - A1网友年龄
查看>>
链表排序
查看>>
蓝桥杯2016省赛 -A3方格填数
查看>>
蓝桥杯2016省赛 - A4快速排序
查看>>
蓝桥杯2016省赛 - A5消除尾一
查看>>
【位运算总结】 之 异或^
查看>>
【位运算总结】 之 与&
查看>>
蓝桥杯2016省赛 - A8 四平方和
查看>>
【位运算总结】 之 左移运算
查看>>
蓝桥杯2016省赛 - A10最大比例
查看>>