我对python非常有经验,但最近尝试了样本测试的代码并查看我遇到的解决方案 - =,+ =和^ = ,我无法弄清楚是什么他们这样做,任何人都可以解释,也许还有他们被使用的背景?
谢谢!
答案 0 :(得分:22)
与几乎所有现代语言一样,python有Assignment Operators 所以他们可以在每次想要在做一些算术或逻辑运算之后为变量赋值之后使用它们,两个(赋值和运算)在一个语句中以紧凑的方式表达....
答案 1 :(得分:0)
计算X = X + Y时,实际上是将X和Y的和返回一个新变量,在您的示例中,该变量将覆盖X的先前值。当您使用X形式的赋值运算符时+ = 1,将值1直接加到X的当前值上,而不将结果返回到新变量中。看看下面的代码:
>>>V = np.arange(10)
>>>view = V[3:] #view is just a subspace (reference) of the V array
>>>print(V);print(view)
[0 1 2 3 4 5 6 7 8 9]
[3 4 5 6 7 8 9]
>>>view = view + 3 #add view to a constant in a new variable
>>>print(V);print(view)
[0 1 2 3 4 5 6 7 8 9]
[ 6 7 8 9 10 11 12]
>>>view = V[3:]
>>>view += 3 #here you actually modify the value of V
>>>print(V);print(view)
[ 0 1 2 6 7 8 9 10 11 12]
[ 6 7 8 9 10 11 12]
您还可以查找numpy.ndarray.base的文档,以检查一个数组是否实际上是另一个数组的引用。
我希望对您有帮助