本帖最后由 xianqiuhua 于 2018-6-27 16:02 编辑
python3中替换python2中cmp函数
我们知道python中内置函数cmp(x, y)用于比较两个对象, 如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1。
但是我们在python3中调用cmp函数时,会出现以下错误:
原因是在python3已经没有cmp函数,被operator模块代替,我们要比较两个对象时,需要导入operator模块。
[Python] 纯文本查看 复制代码 import operator
a = 'hello'
b = 'python'
# ret = operator.lt(a, b)
# ret = operator.gt(a, b)
ret = operator.eq(a, b)
print(ret)
以下几个函数就是用来cmp函数的,之前习惯在python2中使用cmp的朋友们,以后我们在python3中就要使用operator模块给我们提供的函数,下面简单解释下几个常用的比较函数的意思。
[Python] 纯文本查看 复制代码 lt(a, b) # 相当于a<b
le(a, b) # 相当于a<=b
eq(a, b) # 相当于a==b
ne(a, b) # 相当于a!=b
gt(a, b) # 相当于a>b
ge(a, b) # 相当于 a>=b
需要注意的是,以上函数的返回值是布尔类型。
当然,operator模块除了给我们提供了以上的比较运算函数之外,还有逻辑运算、数学运算以及顺序运算。
有兴趣的朋友可以通过 help(operator) 或者 Ctrl + 鼠标左键点击 operator 来查看operator模块里面其他函数的用法。
|