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字典的增删改查? ...
最新文章
- P1972 [SDOI2009]HH的项链(离线树状数组)
- java opencv 调用摄像头_opencv C++实现调用摄像头动态识别人脸
- axis WebServices 完美调用天气预报,查询、显示 代码!
- 世博展示生态化住宅 物联网助推智能化家居
- 计算机专业指南考试,电大计算机专业专科期末考试试卷《计算机专业指南》试卷...
- Aspectj 实现Method条件运行
- 一个能极大提高生产率的Chrome新建标签页扩展
- [COM/ATL]组件、对象、MFC、ATL的区别
- Cannot find or open the PDB file
- 测试用例怎么写_如何高效组织自动化测试用例
- Pb(96) The serializable class Model does not declare a static final serialVersionUID field of typ...
- php cannot bind port to socket,PHP基于socket实现客户端和服务端通讯功能
- @Responsebody与@RequestBody
- Jmeter压力测试实例
- 暴雪游戏登录html代码,官方平台账号绑定暴雪游戏通行证!
- CDH初始化scm_prepare_database.sh数据库遇到的问题
- python report_python之reportlab
- JS中的this指向
- 除了“造车再创业”,小米还能拼什么?
- 英语音标 什么是音素