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

Python的cmp比较函数比较原理

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函数比较原理了

python cmp方法_python cmp函数详解相关推荐

  1. python平方数迭代器_对python中的高效迭代器函数详解

    python中内置的库中有个itertools,可以满足我们在编程中绝大多数需要迭代的场合,当然也可以自己造轮子,但是有现成的好用的轮子不妨也学习一下,看哪个用的顺手~ 首先还是要先import一下: ...

  2. python中plt定义,对Python中plt的画图函数详解

    1.plt.legend plt.legend(loc=0)#显示图例的位置,自适应方式 说明: 'best' : 0, (only implemented for axes legends)(自适应 ...

  3. python getattr_Python中的getattr()函数详解:

    标签:Python中的getattr()函数详解: getattr(object, name[, default]) -> value Get a named attribute from an ...

  4. python open写入_Python3 open() 函数详解 读取文件写入文件追加文件二进制文件

    Python3 open() 函数详解 读取文件写入文件追加文件二进制文件 open()函数的主要作用是打开文件并返回相应文件对象,使用文件对象可以对当前文件进行读取.写入.追加等操作,默认情况下&q ...

  5. python bytearray转为byte_Python3 bytearray() 函数详解 将参数转为可变的字节数组

    Python3 bytearray() 函数详解 将参数转为可变的字节数组 bytearray()函数的主要用途是将参数转换为一个新的字节数组,它是一个可变的整数序列,它的取值范围是0 <= x ...

  6. python中文件读写--open函数详解

    python中open函数详解 在python中文件的读取分为三步走: 读:打开文件 -> 读文件 -> 关闭文件 (有点像把大象放进冰箱需要几步?的问题) 1.open函数 open函数 ...

  7. python bytes 改值_Python3 bytes() 函数详解 将参数转为不可变的字节数组

    Python3 bytes() 函数详解 将参数转为不可变的字节数组 bytes()函数的主要用途是将参数转换为一个新的字节数组,它是一个不可变的整数序列,它的取值范围是0 <= x < ...

  8. Python操作文件之open函数详解

    Python的open函数详解 open(file, mode='rt', encoding=None) -> BaseIO mode参数详解: 字符 含意 'r' 读取(默认) 'w' 写入, ...

  9. python之append、expend函数详解

    extend.append函数详解 一.列表 1>append()函数 2>extend()函数 二.字符串和元组中都没有append()和extend()函数 一.列表 1>app ...

  10. python字典操作的方法_python 字典操作方法详解

    python 字典操作方法详解 一.总结 一句话总结: 字典就是键值对映射 ,像js和php中的键值对数组:{'name':'jamnes','age':'32'} 1.python字典的增删改查? ...

最新文章

  1. iOS开发系列--让你的应用“动”起来
  2. ibm服务器的虚拟控制台,IBM Worklight 6.0 - 开发服务器/控制台问题
  3. TypeError: tuple object does not support item assignment解决方案
  4. 正则化方法:防止过拟合,提高泛化能力
  5. Posterior decompression
  6. 安娜·塞克泽沃斯卡的“小人物”
  7. 如何上传文件夹到GitHub上(配图详解)
  8. .NET Core开发实战(第8课:配置框架:让服务无缝适应各种环境)--学习笔记
  9. 单独像对相对定向的部分基本概念
  10. 设置 ASP.NET 存储当前应用程序的临时文件(生成的源、编译了的程序集等)的目录的物理路径。...
  11. windows中ping端口:tcping命令
  12. Java 数组 快速排序
  13. 汇编语言怎么编译python_汇编语言编译器的编写方法
  14. Listary——好用到哭的高效快速搜索工具
  15. 从金庸小说到DDoS防护
  16. VUE项目引入公共样式的styl文件
  17. python sklearn包中的主成分分析_九、Sklearn主成分分析
  18. 灌区续建配套与信息化改造工程--设备选型
  19. winscp 登录 am4379 的 linux系统 连接被意外关闭
  20. 新手村 Boss战-入门综合练习2 小鱼会有危险吗

热门文章

  1. Swagger突然发癫
  2. 单片机综合实验 - 06 | 数字温度计设计
  3. 我的世界在线服务器地址,私の世界_我的世界1.7.10服务器地址大全 我的世界1.7.10服务器ip大全_游戏堡...
  4. 一分钟和陌生人交朋友
  5. 【Spark分布式内存计算框架——Spark Core】6. RDD 持久化
  6. 云数据库Redis国际站支持4.0
  7. SLES 12集群图形配置新界面——抢先版
  8. 上海大学计算机学硕和专硕,2016年上岸上海大学计算机工程与技术学院专硕,考研总结...
  9. 与计算机科学与技术相似的专业,【选专业】名称相似但实际千差万别的专业 谨防掉坑!...
  10. JAVA计算机毕业设计薪酬福利管理信息系统计算机(附源码、数据库)