CMP(x,y ) :比较两个对象,如果前者小于后者则返回-1,如果等于则返回0,如果大于后者则返回1。
Python的cmp比较函数的比较原理
Python的cmp函数可以比较相同的类型或不同的数据类型。 然后,根据Python的cmp比较函数的返回值判定比较大小。
list1,list2
=
[
123
,
“xyz”
],[
456
,
' abc '
]
cmp
(list1,list2)
_
1
cmp
(列表2,列表1 )。
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函数的比较原理