Python中的就地运算符与标准运算符
Python中的就地运算符
就地操作是指直接更改给定线性代数、向量或矩阵的内容,而无需创建副本。现在,有助于执行此类操作的运算符称为就地运算符。
让我们用一个简单的例子来理解它:
a=9 a += 2 print(a)
输出
11
以上是`+=`就地运算符。首先,将2加到a的值,然后更新为之前的值。
上述原则也适用于其他运算符。常见的就地运算符包括:
- +=
- -=
- *=
- /=
- %=
上述原则也适用于数字以外的其他类型,例如:
language = "Python" language +="3" print(language)
输出
Python3
以上`x+=y`的例子等价于`x = operator.iadd(x,y)`
有多个运算符用于就地操作。
iadd()
此函数用于赋值当前值并将其相加。此运算符执行`x+=y`操作。
x =operator.iadd(9,18) print("Result after adding: ", end="") print(x)
结果
Result after adding: 27
isub()
此函数用于赋值当前值并将其相减。isub()函数执行`x-=y`操作。
x =operator.isub(9,18) print("Result after subtraction: ", end="") print(x)
结果
Result after subtraction: -9
imul()
此函数用于赋值当前值并将其相乘。此运算符执行`x*=y`操作。
x =operator.imul(9,18) print("Result after multiplying: ", end="") print(x)
结果
Result after multiplying: 162
itruediv()
此函数用于赋值当前值并将其相除。此运算符执行`x/=y`操作。
x =operator.itruediv(9,18) print("Result after dividing: ", end="") print(x)
结果
Result after dividing: 0.5
imod()
此函数用于赋值当前值并将其取模。此运算符执行`x %=y`操作。
x =operator.imod(9,18) print("Result after moduls: ", end="") print(x)
结果
Result after moduls: 9
iconcat()
此函数用于连接两个字符串。
x = "Tutorials" y = "Point" str1 = operator.iconcat(x,y) print(" After concatenation : ", end="") print(str1)
结果
After concatenation : TutorialsPoint
ipow()
此函数等价于`x **=y`。
x =operator.ipow(2,6) print("Result after exponent: ", end="") print(x)
结果
Result after exponent: 64
标准运算符
运算符是可以操作操作数值的构造。
例如,在表达式9+18 = 27中,9和18是操作数,+称为运算符。
运算符类型
Python语言支持以下类型的运算符:
**算术运算符**:(例如:+,-,*,/,%,**,//)
**比较运算符**:(例如:“==”,“!=”,“<>”,“>”,“<”,“> =”,“<=”)
**赋值运算符**:(例如:“=”,“+=”,“-=”,“*=”,“/=”,“%=”,“**=”,“//=”)
**逻辑运算符**:(例如:“逻辑与”,“逻辑或”,“逻辑非”)
- **位运算符:**(例如:“|”,“&”,“^”,“~”,“<<”,“>>”)
**成员运算符**:(例如:in,not in)
**身份运算符**:(例如:is,is not)
运算符与函数的映射
下表显示了抽象操作如何对应于Python语法中的运算符符号和operator模块中的函数。
操作 | 语法 | 函数 |
---|---|---|
加法 | x + y | add(x, y) |
连接 | Seq1 + seq2 | concat(seq1, seq2) |
包含测试 | Obj in seq | contains(seq, obj) |
除法 | x / y | truediv(x, y) |
除法 | x // y | floordiv(x, y) |
按位与 | x & y | and_(x, y) |
按位异或 | x ^ y | xor(x, y) |
按位取反 | ~x | invert(x) |
按位或 | x|y | or_(x,y) |
指数 | x ** y | pow(x, y) |
身份 | x is y | is_(x, y) |
身份 | x is not y | is_not(x, y) |
索引赋值 | 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) |
乘法 | x*y | mul(x*y) |
矩阵乘法 | x@b | matmul(x, y) |
否定(算术) | -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) |
广告