Python3 operator
本页内容
Python3 operator 模块
Python2.x 版本中,使用 cmp() 函数来比较两个列表、数字或字符串等的大小关系。
Python 3.X 的版本中已经没有 cmp() 函数,如果你需要实现比较功能,需要引入 operator 模块,适合任何对象,包含的方法有:
operator 模块包含的方法
示例
operator.lt(a, b)
operator.le(a, b)
operator.eq(a, b)
operator.ne(a, b)
operator.ge(a, b)
operator.gt(a, b)
operator.__lt__(a, b)
operator.__le__(a, b)
operator.__eq__(a, b)
operator.__ne__(a, b)
operator.__ge__(a, b)
operator.__gt__(a, b)
operator.lt(a, b) 与 a < b 相同, operator.le(a, b) 与 a <= b 相同,operator.eq(a, b) 与 a == b 相同,operator.ne(a, b) 与 a != b 相同,operator.gt(a, b) 与 a > b 相同,operator.ge(a, b) 与 a >= b 相同。
示例
# 导入 operator 模块
import operator
# 数字
x = 10
y = 20
print("x:",x, ", y:",y)
print("operator.lt(x,y): ", operator.lt(x,y))
print("operator.gt(y,x): ", operator.gt(y,x))
print("operator.eq(x,x): ", operator.eq(x,x))
print("operator.ne(y,y): ", operator.ne(y,y))
print("operator.le(x,y): ", operator.le(x,y))
print("operator.ge(y,x): ", operator.ge(y,x))
print()
# 字符串
x = "Google"
y = "xiaoBai"
print("x:",x, ", y:",y)
print("operator.lt(x,y): ", operator.lt(x,y))
print("operator.gt(y,x): ", operator.gt(y,x))
print("operator.eq(x,x): ", operator.eq(x,x))
print("operator.ne(y,y): ", operator.ne(y,y))
print("operator.le(x,y): ", operator.le(x,y))
print("operator.ge(y,x): ", operator.ge(y,x))
print()
# 查看返回值
print("type((operator.lt(x,y)): ", type(operator.lt(x,y)))
以上代码输出结果为:
示例
x: 10 , y: 20
operator.lt(x,y): True
operator.gt(y,x): True
operator.eq(x,x): True
operator.ne(y,y): False
operator.le(x,y): True
operator.ge(y,x): True
x: Google , y: xiaoBai
operator.lt(x,y): True
operator.gt(y,x): True
operator.eq(x,x): True
operator.ne(y,y): False
operator.le(x,y): True
operator.ge(y,x): True
比较两个列表:
示例
# 导入 operator 模块
import operator
a = [1, 2]
b = [2, 3]
c = [2, 3]
print("operator.eq(a,b): ", operator.eq(a,b))
print("operator.eq(c,b): ", operator.eq(c,b))
以上代码输出结果为:
示例
operator.eq(a,b): False
operator.eq(c,b): True
运算符函数
operator 模块提供了一套与 Python 的内置运算符对应的高效率函数。例如,operator.add(x, y) 与表达式 x+y 相同。
函数包含的种类有:对象的比较运算、逻辑运算、数学运算以及序列运算。
对象比较函数适用于所有的对象,函数名根据它们对应的比较运算符命名。
许多函数名与特殊方法名相同,只是没有双下划线。为了向后兼容性,也保留了许多包含双下划线的函数,为了表述清楚,建议使用没有双下划线的函数。
示例
# Python 实例
# add(), sub(), mul()
# 导入 operator 模块
import operator
# 初始化变量
a = 4
b = 3
# 使用 add() 让两个值相加
print ("add() 运算结果 :",end="");
print (operator.add(a, b))
# 使用 sub() 让两个值相减
print ("sub() 运算结果 :",end="");
print (operator.sub(a, b))
# 使用 mul() 让两个值相乘
print ("mul() 运算结果 :",end="");
print (operator.mul(a, b))
以上代码输出结果为:
示例
add() 运算结果 :7
sub() 运算结果 :1
mul() 运算结果 :12
运算 | 语法 | 函数 |
---|---|---|
加法 | a + b
|
add(a, b)
|
字符串拼接 | seq1 + seq2
|
concat(seq1, seq2)
|
包含测试 | obj in seq
|
contains(seq, obj)
|
除法 | a / b
|
truediv(a, b)
|
除法 | a // b
|
floordiv(a, b)
|
按位与 | a & b
|
and_(a, b)
|
按位异或 | a ^ b
|
xor(a, b)
|
按位取反 | ~ a
|
invert(a)
|
按位或 | b | or_(a, b)
|
取幂 | a ** b
|
pow(a, b)
|
标识 | a is b
|
is_(a, b)
|
标识 | a is not b
|
is_not(a, b)
|
索引赋值 | obj[k] = v
|
setitem(obj, k, v)
|
索引删除 | del obj[k]
|
delitem(obj, k)
|
索引取值 | obj[k]
|
getitem(obj, k)
|
左移 | a << b
|
lshift(a, b)
|
取模 | a % b
|
mod(a, b)
|
乘法 | a * b
|
mul(a, b)
|
矩阵乘法 | a @ b
|
matmul(a, b)
|
取反(算术) | - a
|
neg(a)
|
取反(逻辑) | not a
|
not_(a)
|
正数 | + a
|
pos(a)
|
右移 | a >> b
|
rshift(a, b)
|
切片赋值 | seq[i:j] = values
|
setitem(seq, slice(i, j), values)
|
切片删除 | del seq[i:j]
|
delitem(seq, slice(i, j))
|
切片取值 | seq[i:j]
|
getitem(seq, slice(i, j))
|
字符串格式化 | s % obj
|
mod(s, obj)
|
减法 | a - b
|
sub(a, b)
|
真值测试 | obj
|
truth(obj)
|
比较 | a < b
|
lt(a, b)
|
比较 | a <= b
|
le(a, b)
|
相等 | a == b
|
eq(a, b)
|
不等 | a != b
|
ne(a, b)
|
比较 | a >= b
|
ge(a, b)
|
比较 | a > b
|
gt(a, b)
|