可能重复:
变量赋值和修改(在python中)
我刚刚注意到 python 中的变量赋值有一些我没想到的行为。例如:
import numpy as np
A = np.zeros([1, 3])
B = A
for ind in range(A.shape[1]):
A[:, ind] = ind
B[:, ind] = 2 * ind
print 'A = ', A
print 'B = ', B
输出
A = [[ 0. 2. 4.]]
B = [[ 0. 2. 4.]]
在我期待的时候:
A = [[ 0. 1. 2.]]
B = [[ 0. 2. 4.]]
如果我将“B = A”替换为“B = np.zeros([1, 3])”,那么我做对了。我无法在 Ipython 终端中重现意外结果。我在 SciTE 3.1.0 中使用 F5 键运行代码得到了该结果。我在 Win7 中使用 Python(x, y) 2.7.2.3 发行版。