简介
记录一下最近碰到的两个python里的运算符。
正文
1. **运算符 解包字典
正常来说,a**b是指,是指数运算符。但是在作为函数参数或字典内容时,**运算符可以用作字典解包。
例1
def func(a,b,c):
print(f"a: {a}, b: {b}, c: {c}")
x = {"a" : 1, "b": 2, "c": 3} # 要和函数的变量名对应上,不然会报错
func(**x)
输出为
a: 1, b: 2, c: 3
如果函数变量名称不匹配,会出现以下报错
TypeError: 'a' is an invalid keyword argument for this function
也可以用来在字典中进行解包
例2
x = {"a" : 1, "b": 2, "c": 3}
y = {"d" : 4}
print({**x, **y})
输出为
{'a': 1, 'b': 2, 'c': 3, 'd': 4}
2. @运算符 矩阵点乘
>>>A = np.array([[1,2],[3,4]])
>>>B = np.array([[1,2],[3,4]])
>>>A@B
array([[ 7, 10],
[15, 22]])
>>>np.dot(A,B)
array([[ 7, 10],
[15, 22]])
>>>np.multiply(A,B)
array([[ 1, 4],
[ 9, 16]])
>>>A*B
array([[ 1, 4],
[ 9, 16]])
简洁明了,就是点乘的函数重载了@运算符。