python中将一个变量值赋给另一个变量且地址不同(A=B,且A和B地址不同)
作为一个从matlab转到python的非计算机专业的小白,最近在写程序时遇到了一些坑,在这里分享一下。在python中对矩阵等变量给另一个变量赋值时(A=B),A中保存的是B中的地址。那么在哪些情况下保存的是地址、怎么做才能做到不是同地址的赋值呢?
1、非数组变量
一般的在python中我们将变量a的值赋值给变量b,可以进行如下操作:
a = 1
b = a
b += 1
print( "a =" , a )
print( "b =" , b )
得到结果如下图所示:
从结果中可以看出,我改变b的值,并不会影响a。也就是说对于非数组、列表、字典等类型的变量,直接进行复制,变量b保存的不是地址。
2、矩阵
2.1 使用向量给向量进行赋值
对向量进行赋值操作:
import numpy as np
x = np.mat( '1 2 3' )
y = x
y[0] += 1
print( "x = " , x )
print( "