python cmp方法_python cmp函数详解
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函数详解相关推荐
- python平方数迭代器_对python中的高效迭代器函数详解
python中内置的库中有个itertools,可以满足我们在编程中绝大多数需要迭代的场合,当然也可以自己造轮子,但是有现成的好用的轮子不妨也学习一下,看哪个用的顺手~ 首先还是要先import一下: ...
- python中plt定义,对Python中plt的画图函数详解
1.plt.legend plt.legend(loc=0)#显示图例的位置,自适应方式 说明: 'best' : 0, (only implemented for axes legends)(自适应 ...
- python getattr_Python中的getattr()函数详解:
标签:Python中的getattr()函数详解: getattr(object, name[, default]) -> value Get a named attribute from an ...
- python open写入_Python3 open() 函数详解 读取文件写入文件追加文件二进制文件
Python3 open() 函数详解 读取文件写入文件追加文件二进制文件 open()函数的主要作用是打开文件并返回相应文件对象,使用文件对象可以对当前文件进行读取.写入.追加等操作,默认情况下&q ...
- python bytearray转为byte_Python3 bytearray() 函数详解 将参数转为可变的字节数组
Python3 bytearray() 函数详解 将参数转为可变的字节数组 bytearray()函数的主要用途是将参数转换为一个新的字节数组,它是一个可变的整数序列,它的取值范围是0 <= x ...
- python中文件读写--open函数详解
python中open函数详解 在python中文件的读取分为三步走: 读:打开文件 -> 读文件 -> 关闭文件 (有点像把大象放进冰箱需要几步?的问题) 1.open函数 open函数 ...
- python bytes 改值_Python3 bytes() 函数详解 将参数转为不可变的字节数组
Python3 bytes() 函数详解 将参数转为不可变的字节数组 bytes()函数的主要用途是将参数转换为一个新的字节数组,它是一个不可变的整数序列,它的取值范围是0 <= x < ...
- Python操作文件之open函数详解
Python的open函数详解 open(file, mode='rt', encoding=None) -> BaseIO mode参数详解: 字符 含意 'r' 读取(默认) 'w' 写入, ...
- python之append、expend函数详解
extend.append函数详解 一.列表 1>append()函数 2>extend()函数 二.字符串和元组中都没有append()和extend()函数 一.列表 1>app ...
- python字典操作的方法_python 字典操作方法详解
python 字典操作方法详解 一.总结 一句话总结: 字典就是键值对映射 ,像js和php中的键值对数组:{'name':'jamnes','age':'32'} 1.python字典的增删改查? ...
最新文章
- iOS开发系列--让你的应用“动”起来
- ibm服务器的虚拟控制台,IBM Worklight 6.0 - 开发服务器/控制台问题
- TypeError: tuple object does not support item assignment解决方案
- 正则化方法:防止过拟合,提高泛化能力
- Posterior decompression
- 安娜·塞克泽沃斯卡的“小人物”
- 如何上传文件夹到GitHub上(配图详解)
- .NET Core开发实战(第8课:配置框架:让服务无缝适应各种环境)--学习笔记
- 单独像对相对定向的部分基本概念
- 设置 ASP.NET 存储当前应用程序的临时文件(生成的源、编译了的程序集等)的目录的物理路径。...
- windows中ping端口:tcping命令
- Java 数组 快速排序
- 汇编语言怎么编译python_汇编语言编译器的编写方法
- Listary——好用到哭的高效快速搜索工具
- 从金庸小说到DDoS防护
- VUE项目引入公共样式的styl文件
- python sklearn包中的主成分分析_九、Sklearn主成分分析
- 灌区续建配套与信息化改造工程--设备选型
- winscp 登录 am4379 的 linux系统 连接被意外关闭
- 新手村 Boss战-入门综合练习2 小鱼会有危险吗
热门文章
- Swagger突然发癫
- 单片机综合实验 - 06 | 数字温度计设计
- 我的世界在线服务器地址,私の世界_我的世界1.7.10服务器地址大全 我的世界1.7.10服务器ip大全_游戏堡...
- 一分钟和陌生人交朋友
- 【Spark分布式内存计算框架——Spark Core】6. RDD 持久化
- 云数据库Redis国际站支持4.0
- SLES 12集群图形配置新界面——抢先版
- 上海大学计算机学硕和专硕,2016年上岸上海大学计算机工程与技术学院专硕,考研总结...
- 与计算机科学与技术相似的专业,【选专业】名称相似但实际千差万别的专业 谨防掉坑!...
- JAVA计算机毕业设计薪酬福利管理信息系统计算机(附源码、数据库)