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函数较量道理了